|
Yate
|
A Jabber engine. More...
#include <yatejabber.h>
Public Member Functions | |
| JBEngine (const char *name="jbengine") | |
| virtual | ~JBEngine () |
| unsigned int | streamReadBuffer () const |
| bool | exiting () const |
| void | setExiting () |
| unsigned int | redirectMax () const |
| bool | hasClientTls () const |
| JBRemoteDomainDef * | remoteDomainDef (const String &domain) |
| virtual void | destruct () |
| virtual void | initialize (const NamedList ¶ms) |
| virtual void | cleanup (bool final=false, bool waitTerminate=true) |
| bool | acceptConn (Socket *sock, SocketAddr &remote, JBStream::Type t, bool ssl=false) |
| virtual JBStream * | findStream (const String &id, JBStream::Type hint=JBStream::TypeCount) |
| ObjList * | findClientStreams (bool in, const JabberID &jid, int flags=0xffffffff) |
| ObjList * | findClientStreams (bool in, const JabberID &jid, const ObjList &resources, int flags=0xffffffff) |
| JBClientStream * | findClientStream (bool in, const JabberID &jid) |
| virtual 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) |
| virtual void | buildStreamName (String &name, const JBStream *stream) |
| virtual bool | hasDomain (const String &domain) |
| virtual void | processEvent (JBEvent *ev) |
| virtual void | returnEvent (JBEvent *ev, XMPPError::Type error=XMPPError::NoError, const char *reason=0) |
| virtual void | encryptStream (JBStream *stream) |
| virtual void | connectStream (JBStream *stream) |
| virtual void | compressStream (JBStream *stream, const String &formats) |
| virtual void | buildDialbackKey (const String &id, const String &local, const String &remote, String &key) |
| bool | checkDupId (JBStream *stream) |
| virtual void | printXml (const JBStream *stream, bool send, XmlChild &xml) const |
| virtual void | printXml (const JBStream *stream, bool send, XmlFragment &frag) const |
Public Member Functions inherited from DebugEnabler | |
| DebugEnabler (int level=TelEngine::debugLevel(), bool enabled=true) | |
| int | debugLevel () const |
| int | debugLevel (int level) |
| bool | debugEnabled () const |
| void | debugEnabled (bool enable) |
| const char * | debugName () const |
| bool | debugAt (int level) const |
| bool | debugChained () const |
| void | debugChain (const DebugEnabler *chain=0) |
| void | debugCopy (const DebugEnabler *original=0) |
Public Member Functions inherited from Mutex | |
| Mutex (bool recursive=false, const char *name=0) | |
| Mutex (const Mutex &original) | |
| ~Mutex () | |
| Mutex & | operator= (const Mutex &original) |
| virtual bool | lock (long maxwait=-1) |
| virtual bool | unlock () |
| virtual bool | locked () const |
| const char * | owner () const |
| bool | recursive () const |
Public Member Functions inherited from Lockable | |
| virtual | ~Lockable () |
| virtual bool | check (long maxwait=-1) |
| virtual bool | unlockAll () |
Public Member Functions inherited from GenObject | |
| GenObject () | |
| virtual | ~GenObject () |
| virtual bool | alive () const |
| virtual const String & | toString () const |
| virtual const String & | traceId () const |
| virtual void * | getObject (const String &name) const |
| NamedCounter * | getObjCounter () const |
| NamedCounter * | setObjCounter (NamedCounter *counter) |
Protected Member Functions | |
| virtual void | addStream (JBStream *stream) |
| virtual void | removeStream (JBStream *stream, bool delObj=true) |
| virtual void | stopStreamSets (bool waitTerminate=true) |
| virtual void | getStreamList (RefPointer< JBStreamSetList > &list, int type) |
| void | getStreamLists (RefPointer< JBStreamSetList > list[JBStream::TypeCount], int type=JBStream::TypeCount) |
| JBStream * | findStream (const String &id, JBStreamSetList *list) |
Protected Member Functions inherited from DebugEnabler | |
| void | debugName (const char *name) |
Protected Attributes | |
| bool | m_exiting |
| JBRemoteDomainDef | m_remoteDomain |
| ObjList | m_remoteDomains |
| unsigned char | m_restartMax |
| unsigned int | m_restartUpdInterval |
| unsigned int | m_setupTimeout |
| unsigned int | m_startTimeout |
| unsigned int | m_connectTimeout |
| unsigned int | m_srvTimeout |
| unsigned int | m_pingInterval |
| unsigned int | m_pingTimeout |
| unsigned int | m_idleTimeout |
| unsigned int | m_pptTimeoutC2s |
| unsigned int | m_pptTimeout |
| unsigned int | m_streamReadBuffer |
| unsigned int | m_maxIncompleteXml |
| unsigned int | m_redirectMax |
| bool | m_hasClientTls |
| int | m_printXml |
| bool | m_initialized |
Friends | |
| class | JBStream |
| class | JBConnect |
| class | JBStreamSetProcessor |
Additional Inherited Members | |
Static Public Member Functions inherited from Mutex | |
| static int | count () |
| static int | locks () |
| static bool | efficientTimedLock () |
Static Public Member Functions inherited from Lockable | |
| static void | wait (unsigned long maxwait) |
| static unsigned long | wait () |
| static void | startUsingNow () |
| static void | enableSafety (bool safe=true) |
| static bool | safety () |
Static Public Member Functions inherited from GenObject | |
| static void * | getObject (const String &name, const GenObject *obj) |
| static bool | getObjCounting () |
| static void | setObjCounting (bool enable) |
| static NamedCounter * | getObjCounter (const String &name, bool create=true) |
| static ObjList & | getObjCounters () |
A Jabber engine.
This class holds a Jabber engine
|
virtual |
Destructor
| bool acceptConn | ( | Socket * | sock, |
| SocketAddr & | remote, | ||
| JBStream::Type | t, | ||
| bool | ssl = false ) |
Accept an incoming stream connection. Build a stream. Don't delete the socket if false is returned
| sock | Accepted socket |
| remote | Remote ip and port |
| t | Expected stream type |
| ssl | True if the socket is already using SSL/TLS |
|
protectedvirtual |
Add a stream to one of the stream lists
| stream | The stream to add |
Reimplemented in JBClientEngine, and JBServerEngine.
|
virtual |
Build a dialback key
| id | The stream id |
| local | Local domain |
| remote | Remote domain |
| key | The dialback key |
Build an internal stream name
| name | Destination buffer |
| stream | Stream requesting it |
Reimplemented in JBServerEngine.
| bool checkDupId | ( | JBStream * | stream | ) |
Check if an outgoing stream exists with the same id and remote peer
| stream | The calling stream |
|
virtual |
Stop connect threads. Drop all streams. Stop all stream sets. Release memory if final
| final | True if called from destructor |
| waitTerminate | True to wait for all streams to terminate |
Reimplemented in JBClientEngine, and JBServerEngine.
Start stream compression
| stream | The stream to compress |
| formats | Supported formats |
|
virtual |
Connect an outgoing stream
| stream | The stream to connect |
|
virtual |
Cleanup streams. Stop all threads owned by this engine. Release memory
Reimplemented from GenObject.
|
virtual |
Terminate all streams matching type and/or local/remote jid
| type | Stream type. Match all stream types if unknown |
| local | Optional local jid to match |
| remote | Optional remote jid to match |
| error | Optional error to be sent to the client |
| reason | Optional error text to be sent to the client |
References JabberID::empty().
Referenced by setExiting().
|
virtual |
Start stream TLS
| stream | The stream to enchrypt |
|
inline |
Check if this engine is exiting
| JBClientStream * findClientStream | ( | bool | in, |
| const JabberID & | jid ) |
Find a c2s stream by its local or remote jid. This method is thread safe
| in | True for incoming, false for outgoing |
| jid | JID to compare (the local one for outgoing, remote jid for incoming) |
| ObjList * findClientStreams | ( | bool | in, |
| const JabberID & | jid, | ||
| const ObjList & | resources, | ||
| int | flags = 0xffffffff ) |
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
| in | True for incoming, false for outgoing |
| jid | JID to compare (the local one for outgoing, remote jid for incoming) |
| resources | The list of resources to match |
| flags | Optional stream flag to match |
Find all c2s streams whose local or remote bare jid matches a given one. Ignore destroying streams. This method is thread safe
| in | True for incoming, false for outgoing |
| jid | JID to compare (the local one for outgoing, remote jid for incoming) |
| flags | Optional stream flag to match |
|
virtual |
Find a stream by its name. This method is thread safe
| id | The internal id of the stream to find |
| hint | Optional stream type hint |
|
protected |
Find a stream by its name in a given set list
| id | The name of the stream to find |
| list | The list to search for a stream |
|
inlineprotectedvirtual |
Retrieve the list of streams of a given type. Descendant must implement it
| list | The destination list to set |
| type | Stream type |
Reimplemented in JBClientEngine, and JBServerEngine.
Referenced by getStreamLists().
|
inlineprotected |
Retrieve all streams
| list | The 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 |
| type | Optional stream type |
References getStreamList().
|
inline |
Check if TLS is available for outgoing streams
|
inlinevirtual |
Check if a domain is serviced by this engine
| domain | Domain to check |
|
virtual |
Initialize the engine's parameters. Start private streams if requested
| params | Engine's parameters |
Print XML to output
| stream | Stream requesting the operation |
| send | True if sending, false if receiving |
| xml | XML to print |
|
virtual |
Print an XML fragment to output
| stream | Stream requesting the operation |
| send | True if sending, false if receiving |
| frag | XML fragment to print |
|
virtual |
Process an event. The default implementation will return the event to this engine
| ev | The event to process |
|
inline |
Retrieve maximum redirect counter for outgoing streams
|
inline |
Find a remote domain definition. Return the default settings if not found. This method is not thread safe
| domain | The domain to find |
References ObjList::find(), and ObjList::get().
|
protectedvirtual |
Remove a stream
| stream | The stream to remove |
| delObj | True to release the stream, false to remove it from list without releasing it |
Reimplemented in JBClientEngine, and JBServerEngine.
|
virtual |
Return an event to this engine. The default implementation will send an error if apropriate and delete the event
| ev | The event to return |
| error | Optional error to be returned to the event's XML sender |
| reason | Optional text to be attached to the error |
|
inline |
Set the exiting flag. Terminate all streams
References dropAll(), and JabberID::empty().
|
inlineprotectedvirtual |
Stop all stream sets
| waitTerminate | True to wait for all streams to terminate |
Reimplemented in JBClientEngine, and JBServerEngine.
|
inline |
Retrieve the stream read buffer length