#include <socket_server.hpp>

Definition at line 47 of file socket_server.hpp.
Public Member Functions | |
| socket_server () | |
| Constructor. | |
| socket_server (int port, unsigned int queue_size=s_default_queue_size) | |
| Constructor, open the socket. | |
| socket_server * | open (int port, unsigned int queue_size=s_default_queue_size) |
| Open the socket. | |
| socket_server * | close () |
| Close the socket. | |
| bool | is_open () const |
| Tell if the server is open. | |
| operator bool () const | |
| Tell if the server is working. | |
| template<typename SocketStream> | |
| void | accept (SocketStream &sock, int time_limit) |
| Accept an incoming connection. | |
Static Public Member Functions | |
| static bool | init () |
| Initialize the use of the socket library. | |
| static bool | release () |
| Close the socket library. | |
Static Private Attributes | |
| static const unsigned int | s_default_queue_size = 16 |
| Default queue size for calls to listen. | |
| claw::net::socket_server::socket_server | ( | ) |
| claw::net::socket_server::socket_server | ( | int | port, | |
| unsigned int | queue_size = s_default_queue_size | |||
| ) |
Constructor, open the socket.
| port | The port to bind. | |
| queue_size | The size of the waiting queue for incoming connections. |
Definition at line 49 of file socket_server.cpp.
References claw::net::basic_socket::open().
00050 { 00051 open(port, queue_size); 00052 } // socket_server::socket_server()
| claw::net::socket_server::socket_server * claw::net::socket_server::open | ( | int | port, | |
| unsigned int | queue_size = s_default_queue_size | |||
| ) |
Open the socket.
| port | The port to bind. | |
| queue_size | The size of the waiting queue for incoming connections. |
Definition at line 62 of file socket_server.cpp.
References claw::net::basic_socket::close(), claw::socket_traits_unix::listen(), claw::net::basic_socket::m_descriptor, and claw::net::basic_socket::open().
00063 { 00064 socket_server* result = NULL; 00065 00066 if ( basic_socket::open() ) 00067 { 00068 if ( !socket_traits::listen(m_descriptor, port, queue_size) ) 00069 basic_socket::close(); 00070 else 00071 result = this; 00072 } 00073 00074 return result; 00075 } // socket_server::open()
| claw::net::socket_server::socket_server * claw::net::socket_server::close | ( | ) |
Close the socket.
Reimplemented from claw::net::basic_socket.
Definition at line 81 of file socket_server.cpp.
References claw::net::basic_socket::close().
00082 { 00083 if ( basic_socket::close() ) 00084 return this; 00085 else 00086 return NULL; 00087 } // socket_server::close()
| bool claw::net::socket_server::is_open | ( | ) | const |
Tell if the server is open.
Reimplemented from claw::net::basic_socket.
Definition at line 93 of file socket_server.cpp.
References claw::net::basic_socket::is_open().
Referenced by operator bool().
00094 { 00095 return basic_socket::is_open(); 00096 } // socket_server::is_open()
| claw::net::socket_server::operator bool | ( | ) | const |
Tell if the server is working.
Definition at line 102 of file socket_server.cpp.
References is_open().
00103 { 00104 return is_open(); 00105 } // socket_server::operator bool()
| void claw::net::socket_server::accept | ( | SocketStream & | sock, | |
| int | time_limit | |||
| ) | [inline] |
Accept an incoming connection.
| sock | (out) The socket created for this connection. | |
| time_limit | Maximum of seconds to wait before considering there won't be any connection. if time_limit is negative, the server wait until there is a connection. |
Definition at line 41 of file socket_server.tpp.
References claw::socket_traits_unix::accept(), claw::net::basic_socket::m_descriptor, and claw::socket_traits_unix::select_read().
00042 { 00043 if ( socket_traits::select_read( m_descriptor, time_limit ) ) 00044 sock.open( socket_traits::accept( m_descriptor ) ); 00045 } // socket_server::accept()
| bool claw::net::socket_server::init | ( | ) | [static] |
Initialize the use of the socket library.
Definition at line 112 of file socket_server.cpp.
References claw::socket_traits_unix::init().
00113 { 00114 return socket_traits::init(); 00115 } // socket_server::init()
| bool claw::net::socket_server::release | ( | ) | [static] |
Close the socket library.
Definition at line 122 of file socket_server.cpp.
References claw::socket_traits_unix::release().
00123 { 00124 return socket_traits::release(); 00125 } // socket_server::release()
const unsigned int claw::net::socket_server::s_default_queue_size = 16 [static, private] |
1.5.5