summaryrefslogtreecommitdiff
path: root/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h')
-rw-r--r--src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h
new file mode 100644
index 0000000000..5e7db94e65
--- /dev/null
+++ b/src/3rd_party/apache-log4cxx-0.10.0/src/main/include/log4cxx/helpers/datagramsocket.h
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
+#define _LOG4CXX_HELPERS_DATAGRAM_SOCKET_H
+
+#include <log4cxx/helpers/objectimpl.h>
+#include <log4cxx/helpers/objectptr.h>
+#include <log4cxx/helpers/inetaddress.h>
+#include <log4cxx/helpers/pool.h>
+#include <log4cxx/helpers/datagrampacket.h>
+
+extern "C" { struct apr_socket_t; }
+
+namespace log4cxx
+{
+ namespace helpers
+ {
+ /** This class represents a socket for sending and receiving
+ datagram packets.*/
+ class LOG4CXX_EXPORT DatagramSocket : public helpers::ObjectImpl
+ {
+ public:
+ DECLARE_ABSTRACT_LOG4CXX_OBJECT(DatagramSocket)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(DatagramSocket)
+ END_LOG4CXX_CAST_MAP()
+
+ /** Constructs a datagram socket and binds it to any available port
+ on the local host machine.*/
+ DatagramSocket();
+
+ /** Constructs a datagram socket and binds it to the specified
+ port on the local host machine. */
+ DatagramSocket(int port);
+
+ /** Creates a datagram socket, bound to the specified local
+ address. */
+ DatagramSocket(int port, InetAddressPtr laddr);
+
+ /** ensure the socket is closed. */
+ ~DatagramSocket();
+
+ /** Binds a datagram socket to a local port and address.*/
+ void bind(int lport, InetAddressPtr laddress);
+
+ /** Creates a datagram socket.*/
+ void create();
+
+ /** Closes this datagram socket */
+ void close();
+
+ /** Connects the socket to a remote address for this socket. */
+ void connect(InetAddressPtr address, int port);
+
+ /** Returns the address to which this socket is connected. */
+ inline InetAddressPtr getInetAddress() const
+ { return address; }
+
+ /** Gets the local address to which the socket is bound. */
+ inline InetAddressPtr getLocalAddress() const
+ { return localAddress; }
+
+ /** Returns the port number on the local host to which this
+ socket is bound. */
+ inline int getLocalPort() const
+ { return localPort; }
+
+ /** Returns the port for this socket */
+ inline int getPort() const
+ { return port; }
+
+ /** Returns the binding state of the socket. **/
+ inline bool isBound() const
+ { return localPort != 0; }
+
+ /** Returns wether the socket is closed or not. */
+ inline bool isClosed() const
+ { return socket != 0; }
+
+ /** Returns the connection state of the socket. */
+ inline bool isConnected() const
+ { return port != 0; }
+
+ /** Receives a datagram packet from this socket. */
+ void receive(DatagramPacketPtr& p);
+
+ /** Sends a datagram packet from this socket. */
+ void send(DatagramPacketPtr& p);
+
+ private:
+ DatagramSocket(const DatagramSocket&);
+ DatagramSocket& operator=(const DatagramSocket&);
+ /** The APR socket */
+ apr_socket_t *socket;
+
+ /** The memory pool for the socket */
+ Pool socketPool;
+
+ InetAddressPtr address;
+
+ InetAddressPtr localAddress;
+
+ int port;
+
+ /** The local port number to which this socket is connected. */
+ int localPort;
+
+ };
+ LOG4CXX_PTR_DEF(DatagramSocket);
+ } // namespace helpers
+} // namespace log4cxx
+
+#endif //_LOG4CXX_HELPERS_DATAGRAM_SOCKET_H