Apache Log4cxx  Version 2.0.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
24
25namespace LOG4CXX_NS
26{
27namespace helpers
28{
29
30class DatagramSocket;
33
36class LOG4CXX_EXPORT DatagramSocket : public helpers::Object
37{
38 protected:
39 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(DatagramSocketPriv, m_priv)
40 DatagramSocket(LOG4CXX_PRIVATE_PTR(DatagramSocketPriv) priv);
41
42 public:
47
49 virtual ~DatagramSocket();
50
52 virtual void bind(int lport, const InetAddressPtr& laddress) = 0;
53
55 virtual void close();
56
58 virtual void connect(const InetAddressPtr& address, int port) = 0;
59
61 InetAddressPtr getInetAddress() const;
62
64 InetAddressPtr getLocalAddress() const;
65
68 int getLocalPort() const;
69
71 int getPort() const;
72
74 bool isBound() const;
75
77 virtual bool isClosed() const = 0;
78
80 bool isConnected() const;
81
83 virtual void receive(const DatagramPacketPtr& p) = 0;
84
86 virtual void send(const DatagramPacketPtr& p) = 0;
87
90 static DatagramSocketUniquePtr create();
91
94 static DatagramSocketUniquePtr create(int port);
95
98 static DatagramSocketUniquePtr create(int port, const InetAddressPtr& laddr);
99
100 private:
102 DatagramSocket& operator=(const DatagramSocket&);
103};
104
105} // namespace helpers
106} // namespace log4cxx
107
108#endif //_LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
This class represents a socket for sending and receiving datagram packets.
Definition datagramsocket.h:37
InetAddressPtr getLocalAddress() const
Gets the local address to which the socket is bound.
DatagramSocket(LOG4CXX_PRIVATE_PTR(DatagramSocketPriv) priv)
virtual void bind(int lport, const InetAddressPtr &laddress)=0
Binds a datagram socket to a local port and address.
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 void connect(const InetAddressPtr &address, int port)=0
Connects the socket to a remote address for this socket.
virtual bool isClosed() const =0
Returns wether the socket is closed or not.
bool isConnected() const
Returns the connection state of the socket.
virtual void receive(const DatagramPacketPtr &p)=0
Receives a datagram packet from this 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.
bool isBound() const
Returns the binding state of the socket.
virtual void send(const DatagramPacketPtr &p)=0
Sends a datagram packet from this socket.
base class for java-like objects.
Definition object.h:101
LOG4CXX_PTR_DEF(Object)
LOG4CXX_UNIQUE_PTR_DEF(DatagramSocket)
#define LOG4CXX_CAST_ENTRY(Interface)
Definition object.h:153
#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
Definition object.h:37
#define END_LOG4CXX_CAST_MAP()
Definition object.h:147
#define BEGIN_LOG4CXX_CAST_MAP()
Definition object.h:141