#include <Connection.h>
Inheritance diagram for Eris::Connection:
Public Member Functions | |
Connection (const std::string &cnm, const std::string &host, short port, bool debug) | |
Create a new connection, with the client-name string specified. | |
int | connect () |
If the underlying socket cannot be opened, connect will return an error number immediately. | |
int | disconnect () |
Initiate disconnection from the server. | |
TypeService * | getTypeService () const |
ResponseTracker * | getResponder () const |
virtual void | send (const Atlas::Objects::Root &obj) |
If the connection is not fully connected, an exception will be thrown. | |
void | setDefaultRouter (Router *router) |
void | clearDefaultRouter () |
void | registerRouterForTo (Router *router, const std::string toId) |
void | unregisterRouterForTo (Router *router, const std::string toId) |
void | registerRouterForFrom (Router *router, const std::string fromId) |
void | unregisterRouterForFrom (Router *router, const std::string fromId) |
void | lock () |
Lock then connection's state. | |
void | unlock () |
Unlock the connection (permit status change). | |
void | refreshServerInfo () |
Update the information stored about the current server. | |
void | getServerInfo (ServerInfo &) const |
Retrive the current server information. | |
Public Attributes | |
sigc::signal< void > | GotServerInfo |
sigc::signal< bool > | Disconnecting |
Emitted when the disconnection process is initiated. | |
sigc::signal< void, const std::string & > | Failure |
Emitted when a non-fatal error occurs. | |
sigc::signal< void, Status > | StatusChanged |
emitted when the connection status changes; This will often correspond to the emission of a more specific signal (such as Connected), which should be used where available. | |
Protected Member Functions | |
virtual void | setStatus (Status sc) |
update the connection status (and emit the appropriate signal) | |
virtual void | handleFailure (const std::string &msg) |
Process failures (to track when reconnection should be permitted). | |
virtual void | handleTimeout (const std::string &msg) |
virtual void | onConnect () |
derived-class notification when connection and negotiation is completed | |
void | objectArrived (const Atlas::Objects::Root &obj) |
Protected Attributes | |
const std::string | _host |
the host name we're connected to | |
const short | _port |
port of the server | |
bool | _debug |
Friends | |
class | Redispatch |
class | TestInjector |
|
Create a new connection, with the client-name string specified. The client-name is sent during Atlas negotiation of the connection.
|
|
If the underlying socket cannot be opened, connect will return an error number immediately. Providing the basic connection is established, other failures will be reported via the Failure signal. |
|
Retrive the current server information. Check the status field of the returned object before using this data, since it may be out of date or invalid. |
|
Lock then connection's state. This prevents the connection changing status until a corresponding unlock() call is issued. The only use at present is to hold the connection in the 'DISCONNECTING' state while other objects clean up and so on. In the future locking may also be applicable to other states. |
|
Update the information stored about the current server. While the refresh is taking place, the current info is still available, but with it's status set to QUERYING. The signal GotServerInfo will be emitted once the new data is recieved. |
|
If the connection is not fully connected, an exception will be thrown. To correctly handle disconnection, callers should therefore validate the connection using IsConnected first |
|
update the connection status (and emit the appropriate signal)
|
|
Unlock the connection (permit status change). See Connection::lock for more information about status locking. |
|
Emitted when the disconnection process is initiated. The argument is a flag indicating if the disconnection was clean or not. |
|
Emitted when a non-fatal error occurs. Tthese are nearly always network related, such as connections being lost, or host names not found. The connection will be placed into the DISCONNECTED state after the signal is emitted; thus the current state (when the failure occured) is still valid during the callback |