#include <tcpserver.h>
Public Member Functions | |
TcpServer (const std::vector< std::string > &dbpaths_, const std::string &host, int port, int msecs_active_timeout, int msecs_idle_timeout, bool writable, bool verbose) | |
Construct a TcpServer for a Database and start listening for connections. | |
~TcpServer () | |
Destructor. | |
void | run () |
Accept connections and service requests indefinitely. | |
void | run_once () |
Accept a single connection, service requests on it, then stop. | |
void | handle_one_connection (int socket) |
Handle a single connection on an already connected socket. | |
Private Member Functions | |
void | operator= (const TcpServer &) |
Don't allow assignment. | |
TcpServer (const TcpServer &) | |
Don't allow copying. | |
int | accept_connection () |
Accept a connection and return the filedescriptor for it. | |
Static Private Member Functions | |
static int | get_listening_socket (const std::string &host, int port) |
Create a listening socket ready to accept connections. | |
Private Attributes | |
const std::vector< std::string > | dbpaths |
Paths to the databases we will open. | |
bool | writable |
Is this a WritableDatabase? | |
int | listen_socket |
The socket we're listening on. | |
int | msecs_active_timeout |
Timeout between messages during a single operation (in milliseconds). | |
int | msecs_idle_timeout |
Timeout between operations (in milliseconds). | |
bool | verbose |
Should we produce output when connections are made or lost? |
This class implements the server used by xapian-tcpsrv.
Definition at line 42 of file tcpserver.h.
SOCKET_INITIALIZER_MIXIN::~TcpServer | ( | ) |
Destructor.
void SOCKET_INITIALIZER_MIXIN::operator= | ( | const TcpServer & | ) | [private] |
Don't allow assignment.
SOCKET_INITIALIZER_MIXIN::TcpServer | ( | const TcpServer & | ) | [private] |
Don't allow copying.
static int SOCKET_INITIALIZER_MIXIN::get_listening_socket | ( | const std::string & | host, | |
int | port | |||
) | [static, private] |
Create a listening socket ready to accept connections.
host | hostname or address to listen on or an empty string to accept connections on any interface. | |
port | TCP port to listen on. |
int SOCKET_INITIALIZER_MIXIN::accept_connection | ( | ) | [private] |
Accept a connection and return the filedescriptor for it.
SOCKET_INITIALIZER_MIXIN::TcpServer | ( | const std::vector< std::string > & | dbpaths_, | |
const std::string & | host, | |||
int | port, | |||
int | msecs_active_timeout, | |||
int | msecs_idle_timeout, | |||
bool | writable, | |||
bool | verbose | |||
) |
Construct a TcpServer for a Database and start listening for connections.
dbpaths_ | The path(s) to the database(s) we should open. | |
host | The hostname or address for the interface to listen on (or "" to listen on all interfaces). The TCP port number to listen on. | |
msecs_active_timeout | Timeout between messages during a single operation (in milliseconds). | |
msecs_idle_timeout | Timeout between operations (in milliseconds). | |
writable | Should we open the DB for writing? | |
verbose | Should we produce output when connections are made or lost? |
void SOCKET_INITIALIZER_MIXIN::run | ( | ) |
Accept connections and service requests indefinitely.
This method runs the TcpServer as a daemon which accepts a connection and forks itself (or creates a new thread under Windows) to serve the request while continuing to listen for more connections.
void SOCKET_INITIALIZER_MIXIN::run_once | ( | ) |
Accept a single connection, service requests on it, then stop.
void SOCKET_INITIALIZER_MIXIN::handle_one_connection | ( | int | socket | ) |
Handle a single connection on an already connected socket.
socket will be closed before returning. This method may be called by multiple threads.
const std::vector<std::string> SOCKET_INITIALIZER_MIXIN::dbpaths [private] |
Paths to the databases we will open.
Contains exactly one entry if writable, and at least one if not.
Definition at line 53 of file tcpserver.h.
bool SOCKET_INITIALIZER_MIXIN::writable [private] |
int SOCKET_INITIALIZER_MIXIN::listen_socket [private] |
int SOCKET_INITIALIZER_MIXIN::msecs_active_timeout [private] |
Timeout between messages during a single operation (in milliseconds).
Definition at line 67 of file tcpserver.h.
int SOCKET_INITIALIZER_MIXIN::msecs_idle_timeout [private] |
bool SOCKET_INITIALIZER_MIXIN::verbose [private] |
Should we produce output when connections are made or lost?
Definition at line 73 of file tcpserver.h.