gloox 1.0
Public Member Functions | Protected Attributes

ConnectionBase Class Reference

An abstract base class for a connection. More...

#include <connectionbase.h>

Inheritance diagram for ConnectionBase:
Inheritance graph
[legend]

List of all members.

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 ConnectionBasenewInstance () const =0

Protected Attributes

ConnectionDataHandlerm_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 Schroeter <js@camaya.net>
Since:
0.9

Definition at line 34 of file connectionbase.h.


Constructor & Destructor Documentation

Constructor.

Parameters:
cdhAn 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.


Member Function Documentation

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.

virtual ConnectionError connect ( ) [pure virtual]

Used to initiate the connection.

Returns:
Returns the connection state.

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

virtual void disconnect ( ) [pure virtual]

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

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

virtual void getStatistics ( long int &  totalIn,
long int &  totalOut 
) [pure virtual]

Returns current connection statistics.

Parameters:
totalInThe total number of bytes received.
totalOutThe total number of bytes sent.

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

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.

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.

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.

int port ( ) const [inline]

Returns the currently set port.

Returns:
The server port.

Definition at line 121 of file connectionbase.h.

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.

virtual ConnectionError recv ( int  timeout = -1) [pure virtual]

Use this periodically to receive data from the socket.

Parameters:
timeoutThe 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.

void registerConnectionDataHandler ( ConnectionDataHandler cdh) [inline]

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

Parameters:
cdhThe new ConnectionDataHandler.

Definition at line 102 of file connectionbase.h.

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:
dataThe 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.

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.

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

Sets the server to connect to.

Parameters:
serverThe server to connect to. Either IP or fully qualified domain name.
portThe port to connect to.

Reimplemented in ConnectionHTTPProxy.

Definition at line 109 of file connectionbase.h.

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

A handler for incoming data and connect/disconnect events.

Definition at line 152 of file connectionbase.h.

int m_port [protected]

Holds the port to connect to.

Definition at line 161 of file connectionbase.h.

std::string m_server [protected]

Holds the server's name/address.

Definition at line 158 of file connectionbase.h.

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: