|
CLAW Library (a C++ Library Absolutely Wonderful) 1.5.5
|
Class used to receive incoming connections. More...
#include <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. | |
Class used to receive incoming connections.
Definition at line 47 of file socket_server.hpp.
| claw::net::socket_server::socket_server | ( | ) |
Constructor.
Definition at line 38 of file socket_server.cpp.
{
// nothing to do
} // 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.
{
open(port, queue_size);
} // socket_server::socket_server()
| void claw::net::socket_server::accept | ( | SocketStream & | sock, |
| int | time_limit | ||
| ) |
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().
{
if ( socket_traits::select_read( m_descriptor, time_limit ) )
sock.open( socket_traits::accept( m_descriptor ) );
} // socket_server::accept()
| claw::net::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().
{
if ( basic_socket::close() )
return this;
else
return NULL;
} // socket_server::close()
| 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().
{
return socket_traits::init();
} // socket_server::init()
| 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().
{
return basic_socket::is_open();
} // socket_server::is_open()
| claw::net::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(), and claw::net::basic_socket::open().
{
socket_server* result = NULL;
if ( basic_socket::open() )
{
if ( !socket_traits::listen(m_descriptor, port, queue_size) )
basic_socket::close();
else
result = this;
}
return result;
} // socket_server::open()
| claw::net::socket_server::operator bool | ( | ) | const |
Tell if the server is working.
Definition at line 102 of file socket_server.cpp.
{
return is_open();
} // socket_server::operator bool()
| 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().
{
return socket_traits::release();
} // socket_server::release()
const unsigned int claw::net::socket_server::s_default_queue_size = 16 [static, private] |
Default queue size for calls to listen.
Definition at line 69 of file socket_server.hpp.
1.7.3