class JBEngine

A Jabber engine. More...

Full nameTelEngine::JBEngine
Definition#include <libs/yjabber/yatejabber.h>
InheritsTelEngine::DebugEnabler [public ], TelEngine::GenObject [public ], TelEngine::Mutex [public ]
Inherited byJBClientEngine, JBServerEngine
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Protected Methods

Protected Members


Detailed Description

This class holds a Jabber engine

 JBEngine (const char* name = "jbengine")

JBEngine

Constructor

Parameters:
nameEngine name

 ~JBEngine ()

~JBEngine

[virtual]

Destructor

inline unsigned int  streamReadBuffer ()

streamReadBuffer

[const]

Retrieve the stream read buffer length

Returns: Stream read buffer length

inline bool  exiting ()

exiting

[const]

Check if this engine is exiting

Returns: True if this engine is exiting

inline void  setExiting ()

setExiting

Set the exiting flag. Terminate all streams

inline unsigned int  redirectMax ()

redirectMax

[const]

Retrieve maximum redirect counter for outgoing streams

Returns: Maximum redirect counter for outgoing streams

inline bool  hasClientTls ()

hasClientTls

[const]

Check if TLS is available for outgoing streams

Returns: True if TLS is available for outgoing streams

inline JBRemoteDomainDef*  remoteDomainDef (const String& domain)

remoteDomainDef

Find a remote domain definition. Return the default settings if not found. This method is not thread safe

Parameters:
domainThe domain to find

Returns: Valid JBRemoteDomainDef pointer

void  destruct ()

destruct

[virtual]

Cleanup streams. Stop all threads owned by this engine. Release memory

Reimplemented from GenObject.

void  initialize (const NamedList& params)

initialize

[virtual]

Initialize the engine's parameters. Start private streams if requested

Parameters:
paramsEngine's parameters

void  cleanup (bool final = false, bool waitTerminate = true)

cleanup

[virtual]

Stop connect threads. Drop all streams. Stop all stream sets. Release memory if final

Parameters:
finalTrue if called from destructor
waitTerminateTrue to wait for all streams to terminate

bool  acceptConn (Socket* sock, SocketAddr& remote, JBStream::Type t, bool ssl = false)

acceptConn

Accept an incoming stream connection. Build a stream. Don't delete the socket if false is returned

Parameters:
sockAccepted socket
remoteRemote ip and port
tExpected stream type
sslTrue if the socket is already using SSL/TLS

Returns: True on success

JBStream*  findStream (const String& id, JBStream::Type hint = JBStream::TypeCount)

findStream

[virtual]

Find a stream by its name. This method is thread safe

Parameters:
idThe internal id of the stream to find
hintOptional stream type hint

Returns: Referenced JBStream pointer or 0

ObjList*  findClientStreams (bool in, const JabberID& jid, int flags = 0xffffffff)

findClientStreams

Find all c2s streams whose local or remote bare jid matches a given one. Ignore destroying streams. This method is thread safe

Parameters:
inTrue for incoming, false for outgoing
jidJID to compare (the local one for outgoing, remote jid for incoming)
flagsOptional stream flag to match

Returns: List of referenced JBClientStream pointers or 0

ObjList*  findClientStreams (bool in, const JabberID& jid, const ObjList& resources, int flags = 0xffffffff)

findClientStreams

Find all c2s streams whose local or remote bare jid matches a given one and their resource is found in the given list. Ignore destroying streams. This method is thread safe

Parameters:
inTrue for incoming, false for outgoing
jidJID to compare (the local one for outgoing, remote jid for incoming)
resourcesThe list of resources to match
flagsOptional stream flag to match

Returns: List of referenced JBClientStream pointers or 0

JBClientStream*  findClientStream (bool in, const JabberID& jid)

findClientStream

Find a c2s stream by its local or remote jid. This method is thread safe

Parameters:
inTrue for incoming, false for outgoing
jidJID to compare (the local one for outgoing, remote jid for incoming)

Returns: Referenced JBClientStream pointer or 0

unsigned int  dropAll (JBStream::Type type = JBStream::TypeCount, const JabberID& local = JabberID::empty(), const JabberID& remote = JabberID::empty(), XMPPError::Type error = XMPPError::NoError, const char* reason = 0)

dropAll

[virtual]

Terminate all streams matching type and/or local/remote jid

Parameters:
typeStream type. Match all stream types if unknown
localOptional local jid to match
remoteOptional remote jid to match
errorOptional error to be sent to the client
reasonOptional error text to be sent to the client

Returns: The number of stream terminated

void  buildStreamName (String& name, const JBStream* stream)

buildStreamName

[virtual]

Build an internal stream name

Parameters:
nameDestination buffer
streamStream requesting it

bool  hasDomain (const String& domain)

hasDomain

[virtual]

Check if a domain is serviced by this engine

Parameters:
domainDomain to check

Returns: True if the given domain is serviced by this engine

void  processEvent (JBEvent* ev)

processEvent

[virtual]

Process an event. The default implementation will return the event to this engine

Parameters:
evThe event to process

void  returnEvent (JBEvent* ev, XMPPError::Type error = XMPPError::NoError, const char* reason = 0)

returnEvent

[virtual]

Return an event to this engine. The default implementation will send an error if apropriate and delete the event

Parameters:
evThe event to return
errorOptional error to be returned to the event's XML sender
reasonOptional text to be attached to the error

void  encryptStream (JBStream* stream)

encryptStream

[virtual]

Start stream TLS

Parameters:
streamThe stream to enchrypt

void  connectStream (JBStream* stream)

connectStream

[virtual]

Connect an outgoing stream

Parameters:
streamThe stream to connect

void  compressStream (JBStream* stream, const String& formats)

compressStream

[virtual]

Start stream compression

Parameters:
streamThe stream to compress
formatsSupported formats

void  buildDialbackKey (const String& id, const String& local, const String& remote, String& key)

buildDialbackKey

[virtual]

Build a dialback key

Parameters:
idThe stream id
localLocal domain
remoteRemote domain
keyThe dialback key

bool  checkDupId (JBStream* stream)

checkDupId

Check if an outgoing stream exists with the same id and remote peer

Parameters:
streamThe calling stream

Returns: True if a duplicate is found

void  printXml (const JBStream* stream, bool send, XmlChild& xml)

printXml

[const virtual]

Print XML to output

Parameters:
streamStream requesting the operation
sendTrue if sending, false if receiving
xmlXML to print

void  printXml (const JBStream* stream, bool send, XmlFragment& frag)

printXml

[const virtual]

Print an XML fragment to output

Parameters:
streamStream requesting the operation
sendTrue if sending, false if receiving
fragXML fragment to print

void  addStream (JBStream* stream)

addStream

[protected virtual]

Add a stream to one of the stream lists

Parameters:
streamThe stream to add

void  removeStream (JBStream* stream, bool delObj = true)

removeStream

[protected virtual]

Remove a stream

Parameters:
streamThe stream to remove
delObjTrue to release the stream, false to remove it from list without releasing it

void  stopStreamSets (bool waitTerminate = true)

stopStreamSets

[protected virtual]

Stop all stream sets

Parameters:
waitTerminateTrue to wait for all streams to terminate

void  getStreamList (RefPointer& list, int type)

getStreamList

[protected virtual]

Retrieve the list of streams of a given type. Descendant must implement it

Parameters:
listThe destination list to set
typeStream type

inline void  getStreamLists (RefPointer list[JBStream::TypeCount], int type = JBStream::TypeCount)

getStreamLists

[protected]

Retrieve all streams

Parameters:
listThe destination list to set. The first index will be filled with the c2s streams list, the second index will be set to the s2s stream list
typeOptional stream type

JBStream*  findStream (const String& id, JBStreamSetList* list)

findStream

[protected]

Find a stream by its name in a given set list

Parameters:
idThe name of the stream to find
listThe list to search for a stream

Returns: Referenced JBStream pointer or 0

bool m_exiting

m_exiting

[protected]

JBRemoteDomainDef m_remoteDomain

m_remoteDomain

[protected]

ObjList m_remoteDomains

m_remoteDomains

[protected]

unsigned char m_restartMax

m_restartMax

[protected]

unsigned int m_restartUpdInterval

m_restartUpdInterval

[protected]

unsigned int m_setupTimeout

m_setupTimeout

[protected]

unsigned int m_startTimeout

m_startTimeout

[protected]

unsigned int m_connectTimeout

m_connectTimeout

[protected]

unsigned int m_srvTimeout

m_srvTimeout

[protected]

unsigned int m_pingInterval

m_pingInterval

[protected]

unsigned int m_pingTimeout

m_pingTimeout

[protected]

unsigned int m_idleTimeout

m_idleTimeout

[protected]

unsigned int m_pptTimeoutC2s

m_pptTimeoutC2s

[protected]

unsigned int m_pptTimeout

m_pptTimeout

[protected]

unsigned int m_streamReadBuffer

m_streamReadBuffer

[protected]

unsigned int m_maxIncompleteXml

m_maxIncompleteXml

[protected]

unsigned int m_redirectMax

m_redirectMax

[protected]

bool m_hasClientTls

m_hasClientTls

[protected]

int m_printXml

m_printXml

[protected]

bool m_initialized

m_initialized

[protected]


Generated by: paulc on bussard on Thu Jul 24 18:41:02 2014, using kdoc 2.0a54.