a wrapper implementing reconnect-then-throw More...
#include <socket_wrapper.hxx>
Public Member Functions | |
ReconnectSocketWrapper (int _port, const std::string &_server="127.0.0.1", long long _connect_timeout_usec=socket_client_connection::connect_timeout_usec_default, int _max_retries=socket_client_connection::max_retries_default) | |
ReconnectSocketWrapper (const std::string &_path, long long _connect_timeout_usec=socket_client_connection::connect_timeout_usec_default, int _max_retries=socket_client_connection::max_retries_default) | |
bool | handle (command_client *stubBase, boost::function< void() > f) |
client_connection * | get_connection (void) |
return active connection, create new tcp or unix connection if not existing | |
bool | connection_established (void) |
void | set_logging (std::ostream *_logstream, log_level_values _log_level) |
set logging for coming and current connections | |
long long | get_command_timeout_usec (void) |
void | set_command_timeout_usec (long long _command_timeout_usec) |
long long | get_hello_timeout_usec (void) |
void | set_hello_timeout_usec (long long _hello_timeout_usec) |
std::ostream * | get_logstream (log_level_values level) |
get pointer to logging stream, returns NULL if no logging needed | |
Protected Member Functions | |
void | set_logging_on_connection (client_connection &c) |
always call this when you got a new connection to transfer logging settings | |
Protected Attributes | |
socket_type_value | socket_type |
std::string | path |
std::string | server |
int | port |
long long | connect_timeout_usec |
int | max_retries |
std::auto_ptr < socket_client_connection > | c |
log_level_values | log_level |
std::ostream * | logstream |
a wrapper implementing reconnect-then-throw
This ConnectionWrapper tries to reconnect to the server if something with the connection goes wrong. If even reconnecting max_retries times does not help, an exception is thrown.
libt2n::ReconnectSocketWrapper::ReconnectSocketWrapper | ( | int | _port, | |
const std::string & | _server = "127.0.0.1" , |
|||
long long | _connect_timeout_usec = socket_client_connection::connect_timeout_usec_default , |
|||
int | _max_retries = socket_client_connection::max_retries_default | |||
) | [inline] |
libt2n::ReconnectSocketWrapper::ReconnectSocketWrapper | ( | const std::string & | _path, | |
long long | _connect_timeout_usec = socket_client_connection::connect_timeout_usec_default , |
|||
int | _max_retries = socket_client_connection::max_retries_default | |||
) | [inline] |
bool libt2n::BasicSocketWrapper::connection_established | ( | void | ) | [inline, inherited] |
References libt2n::BasicSocketWrapper::c.
Referenced by libt2n::ReconnectIgnoreFailureSocketWrapper::handle(), and libt2n::BasicSocketWrapper::set_logging().
long long libt2n::ConnectionWrapper::get_command_timeout_usec | ( | void | ) | [inline, inherited] |
References libt2n::ConnectionWrapper::command_timeout_usec.
client_connection * libt2n::BasicSocketWrapper::get_connection | ( | void | ) | [virtual, inherited] |
return active connection, create new tcp or unix connection if not existing
Implements libt2n::ConnectionWrapper.
Reimplemented in libt2n::ReconnectIgnoreFailureSocketWrapper.
References libt2n::BasicSocketWrapper::c, libt2n::BasicSocketWrapper::connect_timeout_usec, libt2n::ConnectionWrapper::log_level, libt2n::ConnectionWrapper::logstream, libt2n::BasicSocketWrapper::max_retries, libt2n::BasicSocketWrapper::path, libt2n::BasicSocketWrapper::port, libt2n::BasicSocketWrapper::socket_type, libt2n::tcp_s, and libt2n::unix_s.
Referenced by libt2n::BasicSocketWrapper::set_logging().
long long libt2n::ConnectionWrapper::get_hello_timeout_usec | ( | void | ) | [inline, inherited] |
References libt2n::ConnectionWrapper::hello_timeout_usec.
std::ostream * libt2n::ConnectionWrapper::get_logstream | ( | log_level_values | level | ) | [inherited] |
get pointer to logging stream, returns NULL if no logging needed
References libt2n::ConnectionWrapper::log_level, and libt2n::ConnectionWrapper::logstream.
bool libt2n::ReconnectSocketWrapper::handle | ( | command_client * | stubBase, | |
boost::function< void() > | f | |||
) | [virtual] |
try to reconnect max_retries time if we encounter a t2n_communication_error during execution of the command
Reimplemented from libt2n::ConnectionWrapper.
Reimplemented in libt2n::ReconnectIgnoreFailureSocketWrapper.
References libt2n::BasicSocketWrapper::c, and libt2n::BasicSocketWrapper::max_retries.
void libt2n::ConnectionWrapper::set_command_timeout_usec | ( | long long | _command_timeout_usec | ) | [inline, inherited] |
References libt2n::ConnectionWrapper::command_timeout_usec.
void libt2n::ConnectionWrapper::set_hello_timeout_usec | ( | long long | _hello_timeout_usec | ) | [inline, inherited] |
References libt2n::ConnectionWrapper::hello_timeout_usec.
void libt2n::BasicSocketWrapper::set_logging | ( | std::ostream * | _logstream, | |
log_level_values | _log_level | |||
) | [virtual, inherited] |
set logging for coming and current connections
Reimplemented from libt2n::ConnectionWrapper.
References libt2n::BasicSocketWrapper::connection_established(), libt2n::BasicSocketWrapper::get_connection(), and libt2n::client_connection::set_logging().
void libt2n::ConnectionWrapper::set_logging_on_connection | ( | client_connection & | c | ) | [protected, inherited] |
always call this when you got a new connection to transfer logging settings
References libt2n::ConnectionWrapper::log_level, libt2n::ConnectionWrapper::logstream, libt2n::none, and libt2n::client_connection::set_logging().
std::auto_ptr<socket_client_connection> libt2n::BasicSocketWrapper::c [protected, inherited] |
long long libt2n::BasicSocketWrapper::connect_timeout_usec [protected, inherited] |
Referenced by libt2n::BasicSocketWrapper::get_connection().
log_level_values libt2n::ConnectionWrapper::log_level [protected, inherited] |
std::ostream* libt2n::ConnectionWrapper::logstream [protected, inherited] |
int libt2n::BasicSocketWrapper::max_retries [protected, inherited] |
Referenced by libt2n::BasicSocketWrapper::get_connection(), and handle().
std::string libt2n::BasicSocketWrapper::path [protected, inherited] |
Referenced by libt2n::BasicSocketWrapper::get_connection().
int libt2n::BasicSocketWrapper::port [protected, inherited] |
Referenced by libt2n::BasicSocketWrapper::get_connection().
std::string libt2n::BasicSocketWrapper::server [protected, inherited] |
socket_type_value libt2n::BasicSocketWrapper::socket_type [protected, inherited] |
Referenced by libt2n::BasicSocketWrapper::get_connection().