ConnectionBase Class Referenceabstract

`#include <connectionbase.h>`

Inheritance diagram for ConnectionBase:
[legend]

## 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
int | port () const
virtual int | localPort () const
virtual const std::string | localInterface () const
virtual void | getStatistics (long int &totalIn, long int &totalOut)=0
virtual ConnectionBase * | newInstance () const =0

## Protected Attributes

ConnectionDataHandler * | m_handler
ConnectionState | m_state
std::string | m_server
int | m_port

## Detailed Description

An abstract base class for a connection.

You should not need to use this class directly.

Author
  Jakob Schröter js@ca.nosp@m.maya.nosp@m..net

Since
  0.9

Definition at line 34 of file connectionbase.h.

## Constructor & Destructor Documentation

## ConnectionBase()

ConnectionBase | ( | ConnectionDataHandler * | cdh | ) |

inline

Constructor.

Parameters

  cdh | An object derived from ConnectionDataHandler that will receive received data.

Definition at line 42 of file connectionbase.h.

## ~ConnectionBase()

virtual ~ConnectionBase | ( |  | ) |

inline virtual

Virtual destructor.

Definition at line 49 of file connectionbase.h.

## Member Function Documentation

## cleanup()

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 ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPBase, and ConnectionTLS.

Definition at line 89 of file connectionbase.h.

## connect()

virtual ConnectionError connect | ( |  | ) |

pure virtual

Used to initiate the connection.

Returns
  Returns the connection state.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPClient, ConnectionTCPServer, and ConnectionTLS.

## disconnect()

virtual void disconnect | ( |  | ) |

pure virtual

Disconnects an established connection. NOOP if no active connection exists.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPBase, and ConnectionTLS.

## getStatistics()

virtual void getStatistics | ( | long int & | totalIn,
|  | long int & | totalOut )

pure virtual

Returns current connection statistics.

Parameters

  totalIn | The total number of bytes received.
  totalOut | The total number of bytes sent.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPBase, and ConnectionTLS.

## localInterface()

virtual const std::string localInterface | ( |  | ) | const

inline virtual

Returns the locally bound IP address.

Returns
  The locally bound IP address.

Reimplemented in ConnectionTCPBase.

Definition at line 133 of file connectionbase.h.

## localPort()

virtual int localPort | ( |  | ) | const

inline virtual

Returns the local port.

Returns
  The local port.

Reimplemented in ConnectionTCPBase.

Definition at line 127 of file connectionbase.h.

## newInstance()

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.

Returns
  A new Connection* instance.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPClient, ConnectionTCPServer, ConnectionTLS, and ConnectionTLSServer.

## port()

int port | ( |  | ) | const

inline

Returns the currently set port.

Returns
  The server port.

Definition at line 121 of file connectionbase.h.

## receive()

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.

Returns
  Returns a value indicating the disconnection reason.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPBase, and ConnectionTLS.

## recv()

virtual ConnectionError recv | ( | int | timeout = -1 | ) |

pure virtual

Use this periodically to receive data from the socket.

Parameters

  timeout | The timeout to use for select in microseconds. Default of -1 means blocking.

Returns
  The state of the connection.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPClient, ConnectionTCPServer, and ConnectionTLS.

## registerConnectionDataHandler()

void registerConnectionDataHandler | ( | ConnectionDataHandler * | cdh | ) |

inline

Use this function to register a new ConnectionDataHandler. There can be only one ConnectionDataHandler at any one time.

Parameters

  cdh | The new ConnectionDataHandler.

Definition at line 102 of file connectionbase.h.

## send()

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.

Parameters

  data | The data to send.

Returns
  True if the data has been sent (no guarantee of receipt), false in case of an error.

Implemented in ConnectionBOSH, ConnectionHTTPProxy, ConnectionSOCKS5Proxy, ConnectionTCPBase, and ConnectionTLS.

## server()

const std::string & server | ( |  | ) | const

inline

Returns the currently set server/IP.

Returns
  The server host/IP.

Definition at line 115 of file connectionbase.h.

## setServer()

void setServer | ( | const std::string & | server,
|  | int | port = -1 )

inline

Sets the server to connect to.

Parameters

  server | The server to connect to. Either IP or fully qualified domain name.
  port | The port to connect to.

Definition at line 109 of file connectionbase.h.

## state()

ConnectionState state | ( |  | ) | const

inline

Returns the current connection state.

Returns
  The state of the connection.

Definition at line 95 of file connectionbase.h.

## Member Data Documentation

## m_handler

ConnectionDataHandler* m_handler

protected

A handler for incoming data and connect/disconnect events.

Definition at line 152 of file connectionbase.h.

## m_port

int m_port

protected

Holds the port to connect to.

Definition at line 161 of file connectionbase.h.

## m_server

std::string m_server

protected

Holds the server's name/address.

Definition at line 158 of file connectionbase.h.

## m_state

ConnectionState m_state

protected

Holds the current connection state.

Definition at line 155 of file connectionbase.h.

The documentation for this class was generated from the following file:

- connectionbase.h