#include <connectionbase.h>
Public Member Functions | |
ConnectionBase (ConnectionDataHandler *cdh) | |
virtual | ~ConnectionBase () |
virtual ConnectionError | connect ()=0 |
virtual ConnectionError | recv (int timeout=-1)=0 |
virtual bool | send (const std::string &data)=0 |
virtual ConnectionError | receive ()=0 |
virtual void | disconnect ()=0 |
virtual void | cleanup () |
ConnectionState | state () const |
void | registerConnectionDataHandler (ConnectionDataHandler *cdh) |
void | setServer (const std::string &server, int port=-1) |
const std::string & | server () const |
virtual void | getStatistics (int &totalIn, int &totalOut)=0 |
virtual ConnectionBase * | newInstance () const =0 |
You should not need to use this class directly.
Definition at line 34 of file connectionbase.h.
ConnectionBase | ( | ConnectionDataHandler * | cdh | ) | [inline] |
Constructor.
cdh | An object derived from ConnectionDataHandler that will receive received data. |
Definition at line 42 of file connectionbase.h.
virtual ~ConnectionBase | ( | ) | [inline, virtual] |
Virtual destructor.
Definition at line 49 of file connectionbase.h.
virtual ConnectionError connect | ( | ) | [pure virtual] |
Used to initiate the connection.
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPClient, and ConnectionTCPServer.
virtual ConnectionError recv | ( | int | timeout = -1 |
) | [pure virtual] |
Use this periodically to receive data from the socket and to feed the parser.
timeout | The timeout to use for select in microseconds. Default of -1 means blocking. |
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPClient, and ConnectionTCPServer.
virtual bool send | ( | const std::string & | data | ) | [pure virtual] |
Use this function to send a string of data over the wire. The function returns only after all data has been sent.
data | The data to send. |
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, and ConnectionTCPBase.
virtual ConnectionError receive | ( | ) | [pure virtual] |
Use this function to put the connection into 'receive mode', i.e. this function returns only when the connection is terminated.
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, and ConnectionTCPBase.
virtual void disconnect | ( | ) | [pure virtual] |
Disconnects an established connection. NOOP if no active connection exists.
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, and ConnectionTCPBase.
virtual void cleanup | ( | ) | [inline, virtual] |
This function is called after a disconnect to clean up internal state. It is also called by ConnectionBase's destructor.
Reimplemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, and ConnectionTCPBase.
Definition at line 89 of file connectionbase.h.
ConnectionState state | ( | ) | const [inline] |
Returns the current connection state.
Definition at line 95 of file connectionbase.h.
void registerConnectionDataHandler | ( | ConnectionDataHandler * | cdh | ) | [inline] |
Use this function to register a new ConnectionDataHandler. There can be only one ConnectionDataHandler at any one time.
cdh | The new ConnectionDataHandler. |
Definition at line 102 of file connectionbase.h.
void setServer | ( | const std::string & | server, | |
int | port = -1 | |||
) | [inline] |
Sets the server to connect to.
server | The server to connect to. Either IP or fully qualified domain name. | |
port | The port to connect to. |
Reimplemented in ConnectionHTTPProxy.
Definition at line 109 of file connectionbase.h.
const std::string& server | ( | ) | const [inline] |
Returns the currently set server/IP.
Definition at line 115 of file connectionbase.h.
virtual void getStatistics | ( | int & | totalIn, | |
int & | totalOut | |||
) | [pure virtual] |
Returns current connection statistics.
totalIn | The total number of bytes received. | |
totalOut | The total number of bytes sent. |
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, and ConnectionTCPBase.
virtual ConnectionBase* newInstance | ( | ) | const [pure virtual] |
This function returns a new instance of the current ConnectionBase-derived object. The idea is to be able to 'clone' ConnectionBase-derived objects without knowing of what type they are exactly.
Implemented in ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPClient, and ConnectionTCPServer.