TCP/IP replication client class.
More...
#include <replicatetcpclient.h>
|
| ReplicateTcpClient (const std::string &hostname, int port, double timeout_connect, double socket_timeout) |
| Constructor. More...
|
|
void | update_from_master (const std::string &path, const std::string &remotedb, Xapian::ReplicationInfo &info, double reader_close_time, bool force_copy) |
|
| ~ReplicateTcpClient () |
| Destructor. More...
|
|
| TcpServer (const std::string &host, int port, bool tcp_nodelay, bool verbose) |
| Construct a TcpServer and start listening for connections. More...
|
|
virtual | ~TcpServer () |
| Destructor. More...
|
|
void | run () |
| Accept connections and service requests indefinitely. More...
|
|
void | run_once () |
| Accept a single connection, service requests on it, then stop. More...
|
|
virtual void | handle_one_connection (int socket)=0 |
| Handle a single connection on an already connected socket. More...
|
|
|
bool | verbose |
| Should we produce output when connections are made or lost? More...
|
|
|
static int | open_socket (const std::string &hostname, int port, double timeout_connect) |
| Attempt to open a TCP/IP socket connection to a replication server. More...
|
|
static int | get_listening_socket (const std::string &host, int port, bool tcp_nodelay) |
| Create a listening socket ready to accept connections. More...
|
|
TCP/IP replication client class.
TCP/IP socket based server for RemoteDatabase.
This class implements the server used by xapian-tcpsrv.
Definition at line 36 of file replicatetcpclient.h.
◆ ~ReplicateTcpClient()
SOCKET_INITIALIZER_MIXIN::~ReplicateTcpClient |
( |
| ) |
|
◆ ~TcpServer()
virtual SOCKET_INITIALIZER_MIXIN::~TcpServer |
( |
| ) |
|
|
virtual |
◆ accept_connection()
int SOCKET_INITIALIZER_MIXIN::accept_connection |
( |
| ) |
|
|
protected |
Accept a connection and return the file descriptor for it.
◆ get_listening_socket()
static int SOCKET_INITIALIZER_MIXIN::get_listening_socket |
( |
const std::string & |
host, |
|
|
int |
port, |
|
|
bool |
tcp_nodelay |
|
) |
| |
|
staticprivate |
Create a listening socket ready to accept connections.
- Parameters
-
host | hostname or address to listen on or an empty string to accept connections on any interface. |
port | TCP port to listen on. |
tcp_nodelay | If true, enable TCP_NODELAY option. |
◆ handle_one_connection()
virtual void SOCKET_INITIALIZER_MIXIN::handle_one_connection |
( |
int |
socket | ) |
|
|
pure virtual |
Handle a single connection on an already connected socket.
◆ open_socket()
static int SOCKET_INITIALIZER_MIXIN::open_socket |
( |
const std::string & |
hostname, |
|
|
int |
port, |
|
|
double |
timeout_connect |
|
) |
| |
|
staticprivate |
Attempt to open a TCP/IP socket connection to a replication server.
Connect to replication server running on port port of host hostname. Give up trying to connect after timeout_connect seconds.
Note: this method is called early on during class construction before any member variables or even the base class have been initialised. To help avoid accidentally trying to use member variables or call other methods which do, this method has been deliberately made "static".
◆ operator=() [1/2]
◆ operator=() [2/2]
void SOCKET_INITIALIZER_MIXIN::operator= |
( |
const TcpServer & |
| ) |
|
|
private |
◆ ReplicateTcpClient() [1/2]
SOCKET_INITIALIZER_MIXIN::ReplicateTcpClient |
( |
const ReplicateTcpClient & |
| ) |
|
|
private |
◆ ReplicateTcpClient() [2/2]
SOCKET_INITIALIZER_MIXIN::ReplicateTcpClient |
( |
const std::string & |
hostname, |
|
|
int |
port, |
|
|
double |
timeout_connect, |
|
|
double |
socket_timeout |
|
) |
| |
Constructor.
Connect to replication server running on port port of host hostname. Give up trying to connect after timeout_connect seconds.
- Parameters
-
timeout_connect | Timeout for trying to connect (in seconds). |
socket_timeout | Socket timeout (in seconds); 0 for no timeout. |
◆ run()
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.
◆ run_once()
void SOCKET_INITIALIZER_MIXIN::run_once |
( |
| ) |
|
Accept a single connection, service requests on it, then stop.
◆ TcpServer() [1/2]
SOCKET_INITIALIZER_MIXIN::TcpServer |
( |
const TcpServer & |
| ) |
|
|
private |
◆ TcpServer() [2/2]
SOCKET_INITIALIZER_MIXIN::TcpServer |
( |
const std::string & |
host, |
|
|
int |
port, |
|
|
bool |
tcp_nodelay, |
|
|
bool |
verbose |
|
) |
| |
Construct a TcpServer and start listening for connections.
- Parameters
-
host | The hostname or address for the interface to listen on (or "" to listen on all interfaces). |
port | The TCP port number to listen on. |
tcp_nodelay | If true, enable TCP_NODELAY option. |
verbose | Should we produce output when connections are made or lost? |
◆ update_from_master()
void SOCKET_INITIALIZER_MIXIN::update_from_master |
( |
const std::string & |
path, |
|
|
const std::string & |
remotedb, |
|
|
Xapian::ReplicationInfo & |
info, |
|
|
double |
reader_close_time, |
|
|
bool |
force_copy |
|
) |
| |
◆ listen_socket
int SOCKET_INITIALIZER_MIXIN::listen_socket |
|
private |
The socket we're listening on.
Definition at line 56 of file tcpserver.h.
◆ remconn
◆ socket
int SOCKET_INITIALIZER_MIXIN::socket |
|
private |
◆ verbose
bool SOCKET_INITIALIZER_MIXIN::verbose |
|
protected |
Should we produce output when connections are made or lost?
Definition at line 74 of file tcpserver.h.
The documentation for this class was generated from the following files: