SOCKS5BytestreamManager Class Reference

An SOCKS5BytestreamManager dispatches SOCKS5 Bytestreams. More...

#include <socks5bytestreammanager.h>

Inherits gloox::IqHandler.

List of all members.

Public Types

enum  S5BMode { S5BTCP, S5BUDP, S5BInvalid }

Public Member Functions

 SOCKS5BytestreamManager (ClientBase *parent, BytestreamHandler *s5bh)
virtual ~SOCKS5BytestreamManager ()
void setStreamHosts (StreamHostList hosts)
void addStreamHost (const JID &jid, const std::string &host, int port)
bool requestSOCKS5Bytestream (const JID &to, S5BMode mode, const std::string &sid=EmptyString, const JID &from=JID())
bool dispose (SOCKS5Bytestream *s5b)
void acceptSOCKS5Bytestream (const std::string &sid)
void rejectSOCKS5Bytestream (const std::string &sid, StanzaError reason=StanzaErrorNotAcceptable)
void registerBytestreamHandler (BytestreamHandler *s5bh)
void removeBytestreamHandler ()
void registerSOCKS5BytestreamServer (SOCKS5BytestreamServer *server)
void removeSOCKS5BytestreamServer ()
virtual bool handleIq (const IQ &iq)
virtual void handleIqID (const IQ &iq, int context)

Detailed Description

An SOCKS5BytestreamManager dispatches SOCKS5 Bytestreams.

Author:
Jakob Schroeter <js@camaya.net>
Since:
0.9

Definition at line 51 of file socks5bytestreammanager.h.


Member Enumeration Documentation

enum S5BMode

Supported transport layer protocols.

Enumerator:
S5BTCP 

Use TCP on the transport layer.

S5BUDP 

Use UDP on the transport layer. Not currently supported.

S5BInvalid 

Invalid mode.

Definition at line 61 of file socks5bytestreammanager.h.


Constructor & Destructor Documentation

Constructs a new SOCKS5BytestreamManager.

Parameters:
parent The ClientBase to use for sending data.
s5bh A SOCKS5BytestreamManager -derived object that will receive incoming and outgoing SOCKS5Bytestreams.

Definition at line 137 of file socks5bytestreammanager.cpp.

~SOCKS5BytestreamManager (  )  [virtual]

Virtual destructor.

Definition at line 147 of file socks5bytestreammanager.cpp.


Member Function Documentation

void acceptSOCKS5Bytestream ( const std::string &  sid  ) 

Use this function to accept an incoming bytestream.

Parameters:
sid The stream's id as passed to BytestreamHandler::handleIncomingSOCKS5Bytestream().

Definition at line 329 of file socks5bytestreammanager.cpp.

void addStreamHost ( const JID jid,
const std::string &  host,
int  port 
)

Adds one StreamHost to the list of StreamHosts.

Parameters:
jid The StreamHost's JID.
host The StreamHost's hostname.
port The StreamHost's port.

Definition at line 158 of file socks5bytestreammanager.cpp.

bool dispose ( SOCKS5Bytestream s5b  ) 

To get rid of a bytestream (i.e., close and delete it), call this function. You should then not use the bytestream any more. The remote entity will be notified of the closing of the stream.

Parameters:
s5b The bytestream to dispose. It will be deleted here.

Definition at line 462 of file socks5bytestreammanager.cpp.

bool handleIq ( const IQ iq  )  [virtual]

Reimplement this function if you want to be notified about incoming IQs.

Parameters:
iq The complete IQ stanza.
Returns:
Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, a 'error' will be sent.
Since:
1.0

Implements IqHandler.

Definition at line 258 of file socks5bytestreammanager.cpp.

void handleIqID ( const IQ iq,
int  context 
) [virtual]

Reimplement this function if you want to be notified about incoming IQs with a specific value of the id attribute. You have to enable tracking of those IDs using Client::trackID(). This is usually useful for IDs that generate a positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.

Parameters:
iq The complete IQ stanza.
context A value to restore context, stored with ClientBase::trackID().
Note:
Only IQ stanzas of type 'result' or 'error' can arrive here.
Since:
1.0

Implements IqHandler.

Definition at line 379 of file socks5bytestreammanager.cpp.

void registerBytestreamHandler ( BytestreamHandler s5bh  )  [inline]

Use this function to register an object that will receive new incoming bytestream requests from the SOCKS5BytestreamManager. Only one BytestreamHandler can be registered at any one time.

Parameters:
s5bh The BytestreamHandler derived object to receive notifications.

Definition at line 141 of file socks5bytestreammanager.h.

void registerSOCKS5BytestreamServer ( SOCKS5BytestreamServer server  )  [inline]

Tells the SOCKS5BytestreamManager which SOCKS5BytestreamServer handles peer-2-peer SOCKS5 bytestreams.

Parameters:
server The SOCKS5BytestreamServer to use.

Definition at line 155 of file socks5bytestreammanager.h.

void rejectSOCKS5Bytestream ( const std::string &  sid,
StanzaError  reason = StanzaErrorNotAcceptable 
)

Use this function to reject an incoming bytestream.

Parameters:
sid The stream's id as passed to BytestreamHandler::handleIncomingSOCKS5Bytestream().
reason The reason for the reject.

Definition at line 343 of file socks5bytestreammanager.cpp.

void removeBytestreamHandler (  )  [inline]

Removes the registered BytestreamHandler.

Definition at line 147 of file socks5bytestreammanager.h.

void removeSOCKS5BytestreamServer (  )  [inline]

Un-registers any local SOCKS5BytestreamServer.

Definition at line 160 of file socks5bytestreammanager.h.

bool requestSOCKS5Bytestream ( const JID to,
S5BMode  mode,
const std::string &  sid = EmptyString,
const JID from = JID() 
)

This function requests a bytestream with the remote entity. Data can only be sent over an open stream. Use isOpen() to find out what the stream's current state is. However, successful opening/initiation will be announced by means of the BytestreamHandler interface. Multiple bytestreams (even per JID) can be initiated without waiting for success.

Parameters:
to The recipient of the requested bytestream.
mode The desired transport layer protocol.
sid The bytestream's stream ID, if previously negotiated e.g. using SI (XEP-0095).
from An optional 'from' address to stamp outgoing requests with. Only useful in component scenarios. Defaults to empty JID.
Returns:
False in case of an error, true otherwise. A return value of true does not indicate that the bytestream has been opened. This is announced by means of the BytestreamHandler.

Definition at line 167 of file socks5bytestreammanager.cpp.

void setStreamHosts ( StreamHostList  hosts  )  [inline]

Sets a list of StreamHosts that will be used for subsequent bytestream requests.

Note:
At least one StreamHost is required.
Parameters:
hosts A list of StreamHosts.

Definition at line 86 of file socks5bytestreammanager.h.


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

Generated by  doxygen 1.6.2