a wrapper implementing reconnect-then-ignore More...
#include <socket_wrapper.hxx>
Public Member Functions | |
ReconnectIgnoreFailureSocketWrapper (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) | |
ReconnectIgnoreFailureSocketWrapper (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) | |
client_connection * | get_connection (void) |
return active connection, return a dummy-connection if we can't establish one | |
bool | handle (command_client *stubBase, boost::function< void() > f) |
try to execute the command, may ignore the command if server not available | |
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 |
Private Attributes | |
dummy_client_connection | dc |
a wrapper implementing reconnect-then-ignore
This ConnectionWrapper tries to reconnect to the server if something with the connection goes wrong. If even reconnecting max_retries times does not help, the complete t2n-call is ignored. The return value of the call will be created with the default constructor.
libt2n::ReconnectIgnoreFailureSocketWrapper::ReconnectIgnoreFailureSocketWrapper | ( | 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::ReconnectIgnoreFailureSocketWrapper::ReconnectIgnoreFailureSocketWrapper | ( | 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 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::ReconnectIgnoreFailureSocketWrapper::get_connection | ( | void | ) | [virtual] |
return active connection, return a dummy-connection if we can't establish one
Reimplemented from libt2n::BasicSocketWrapper.
References libt2n::BasicSocketWrapper::c, dc, and libt2n::connection::is_closed().
Referenced by handle().
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::ReconnectIgnoreFailureSocketWrapper::handle | ( | command_client * | stubBase, | |
boost::function< void() > | f | |||
) | [virtual] |
try to execute the command, may ignore the command if server not available
Reimplemented from libt2n::ReconnectSocketWrapper.
References libt2n::BasicSocketWrapper::connection_established(), dc, get_connection(), and libt2n::command_client::replace_connection().
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().
Referenced by get_connection(), and handle().
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 libt2n::ReconnectSocketWrapper::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().