source: pacpusframework/trunk/3rd/apache-log4cxx/include/log4cxx/helpers/socket.h@ 3

Last change on this file since 3 was 2, checked in by sgosseli, 12 years ago

Add 3rd party libraries (log4cxx).

File size: 3.4 KB
Line 
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_SOCKET_H
19#define _LOG4CXX_HELPERS_SOCKET_H
20
21extern "C" {
22 struct apr_socket_t;
23}
24
25
26#include <log4cxx/helpers/inetaddress.h>
27#include <log4cxx/helpers/pool.h>
28
29
30namespace log4cxx
31{
32 namespace helpers
33 {
34 class ByteBuffer;
35 /**
36 <p>This class implements client sockets (also called just "sockets"). A socket
37 is an endpoint for communication between two machines.
38 <p>The actual work of the socket is performed by an instance of the SocketImpl
39 class. An application, by changing the socket factory that creates the socket
40 implementation, can configure itself to create sockets appropriate to the
41 local firewall.
42 */
43 class LOG4CXX_EXPORT Socket : public helpers::ObjectImpl
44 {
45 public:
46 DECLARE_ABSTRACT_LOG4CXX_OBJECT(Socket)
47 BEGIN_LOG4CXX_CAST_MAP()
48 LOG4CXX_CAST_ENTRY(Socket)
49 END_LOG4CXX_CAST_MAP()
50
51 /** Creates a stream socket and connects it to the specified port
52 number at the specified IP address.
53 */
54 Socket(InetAddressPtr& address, int port);
55 Socket(apr_socket_t* socket, apr_pool_t* pool);
56 ~Socket();
57
58 size_t write(ByteBuffer&);
59
60 /** Closes this socket. */
61 void close();
62
63 /** Returns the value of this socket's address field. */
64 InetAddressPtr getInetAddress() const;
65
66 /** Returns the value of this socket's port field. */
67 int getPort() const;
68 private:
69 Socket(const Socket&);
70 Socket& operator=(const Socket&);
71
72 Pool pool;
73
74 apr_socket_t* socket;
75
76
77 /** The IP address of the remote end of this socket. */
78 InetAddressPtr address;
79
80 /** The port number on the remote host to which
81 this socket is connected. */
82 int port;
83 };
84
85 LOG4CXX_PTR_DEF(Socket);
86
87 } // namespace helpers
88} // namespace log4cxx
89
90#endif // _LOG4CXX_HELPERS_SOCKET_H
Note: See TracBrowser for help on using the repository browser.