Apache Log4cxx  Version 1.5.0
Loading...
Searching...
No Matches
datagramsocket.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
19#define _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
20
25
26namespace LOG4CXX_NS
27{
28namespace helpers
29{
30
31class DatagramSocket;
34
37class LOG4CXX_EXPORT DatagramSocket : public helpers::Object
38{
39 protected:
40 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(DatagramSocketPriv, m_priv)
41 DatagramSocket(LOG4CXX_PRIVATE_PTR(DatagramSocketPriv) priv);
42
43 public:
48
50 virtual ~DatagramSocket();
51
53 virtual void bind(int lport, InetAddressPtr laddress) = 0;
54
56 virtual void close();
57
59 virtual void connect(InetAddressPtr address, int port) = 0;
60
62 InetAddressPtr getInetAddress() const;
63
65 InetAddressPtr getLocalAddress() const;
66
69 int getLocalPort() const;
70
72 int getPort() const;
73
75 bool isBound() const;
76
78 virtual bool isClosed() const = 0;
79
81 bool isConnected() const;
82
84 virtual void receive(DatagramPacketPtr& p) = 0;
85
87 virtual void send(DatagramPacketPtr& p) = 0;
88
91 static DatagramSocketUniquePtr create();
92
95 static DatagramSocketUniquePtr create(int port);
96
99 static DatagramSocketUniquePtr create(int port, InetAddressPtr laddr);
100
101 private:
103 DatagramSocket& operator=(const DatagramSocket&);
104};
105
106} // namespace helpers
107} // namespace log4cxx
108
109#endif //_LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
This class represents a socket for sending and receiving datagram packets.
Definition datagramsocket.h:38
InetAddressPtr getLocalAddress() const
Gets the local address to which the socket is bound.
DatagramSocket(LOG4CXX_PRIVATE_PTR(DatagramSocketPriv) priv)
virtual void receive(DatagramPacketPtr &p)=0
Receives a datagram packet from this socket.
InetAddressPtr getInetAddress() const
Returns the address to which this socket is connected.
int getPort() const
Returns the port for this socket.
int getLocalPort() const
Returns the port number on the local host to which this socket is bound.
virtual bool isClosed() const =0
Returns wether the socket is closed or not.
virtual void bind(int lport, InetAddressPtr laddress)=0
Binds a datagram socket to a local port and address.
bool isConnected() const
Returns the connection state of the socket.
virtual void close()
Closes this datagram socket.
static DatagramSocketUniquePtr create()
Constructs a datagram socket and binds it to any available port on the local host machine.
virtual void send(DatagramPacketPtr &p)=0
Sends a datagram packet from this socket.
virtual void connect(InetAddressPtr address, int port)=0
Connects the socket to a remote address for this socket.
bool isBound() const
Returns the binding state of the socket.
base class for java-like objects.
Definition object.h:106
LOG4CXX_PTR_DEF(Object)
LOG4CXX_UNIQUE_PTR_DEF(DatagramSocket)
#define LOG4CXX_CAST_ENTRY(Interface)
Definition object.h:158
#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
Definition object.h:39
#define END_LOG4CXX_CAST_MAP()
Definition object.h:152
#define BEGIN_LOG4CXX_CAST_MAP()
Definition object.h:146