|
Yate
|
A Jabber server engine. More...
#include <yatejabber.h>
Public Member Functions | |
| JBServerEngine (const char *name="jbserverengine") | |
| ~JBServerEngine () | |
| virtual void | cleanup (bool final=false, bool waitTerminate=true) |
| virtual void | buildStreamName (String &name, const JBStream *stream) |
| JBServerStream * | findServerStream (const String &local, const String &remote, bool out, bool auth=true) |
| JBServerStream * | createServerStream (const String &local, const String &remote, const char *dbId=0, const char *dbKey=0, bool dbOnly=false, const NamedList *params=0) |
| JBServerStream * | createCompStream (const String &name, const String &local, const String &remote, const NamedList *params=0) |
| JBClusterStream * | findClusterStream (const String &remote, JBClusterStream *skip=0) |
| virtual JBClusterStream * | createClusterStream (const String &local, const String &remote, const NamedList *params=0) |
| unsigned int | terminateClientStreams (const JabberID &jid, XMPPError::Type error=XMPPError::NoError, const char *reason=0) |
Public Member Functions inherited from JBEngine | |
| 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) |
| 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 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) |
| virtual void | getStreamListsType (int type, RefPointer< JBStreamSetList > &recv, RefPointer< JBStreamSetList > &process) |
| unsigned int | getStreamIndex () |
Protected Member Functions inherited from JBEngine | |
| 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 | |
| unsigned int | m_streamIndex |
| JBStreamSetList * | m_c2sReceive |
| JBStreamSetList * | m_c2sProcess |
| JBStreamSetList * | m_s2sReceive |
| JBStreamSetList * | m_s2sProcess |
| JBStreamSetList * | m_compReceive |
| JBStreamSetList * | m_compProcess |
| JBStreamSetList * | m_clusterReceive |
| JBStreamSetList * | m_clusterProcess |
Protected Attributes inherited from JBEngine | |
| 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 |
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 server engine.
This class implements a Jabber server engine
| JBServerEngine | ( | const char * | name = "jbserverengine" | ) |
Constructor
| name | Engine name |
| ~JBServerEngine | ( | ) |
Destructor
|
protectedvirtual |
Add a stream to one of the stream lists
| stream | The stream to add |
Reimplemented from JBEngine.
Build an internal stream name
| name | Destination buffer |
| stream | Stream requesting it |
Reimplemented from JBEngine.
References getStreamIndex().
|
virtual |
Terminate all streams. Stop all sets processors. Release memory if final
| final | True if called from destructor |
| waitTerminate | True to wait for all streams to terminate |
Reimplemented from JBEngine.
|
virtual |
Create an outgoing cluster stream. This method is thread safe
| local | Local party domain |
| remote | Remote party domain |
| params | Optional stream parameters |
| JBServerStream * createCompStream | ( | const String & | name, |
| const String & | local, | ||
| const String & | remote, | ||
| const NamedList * | params = 0 ) |
Create an outgoing comp stream.
| name | Stream name |
| local | Local party domain |
| remote | Remote party domain |
| params | Optional stream parameters |
| JBServerStream * createServerStream | ( | const String & | local, |
| const String & | remote, | ||
| const char * | dbId = 0, | ||
| const char * | dbKey = 0, | ||
| bool | dbOnly = false, | ||
| const NamedList * | params = 0 ) |
Create an outgoing s2s stream.
| local | Local party domain |
| remote | Remote party domain |
| dbId | Optional dialback id (stream id) |
| dbKey | Optional dialback key to verify |
| dbOnly | True if this is a dialback only stream |
| params | Optional stream parameters |
| JBClusterStream * findClusterStream | ( | const String & | remote, |
| JBClusterStream * | skip = 0 ) |
Find a cluster stream by remote domain. This method is thread safe
| remote | Remote jid |
| skip | Optional stream to skip |
| JBServerStream * findServerStream | ( | const String & | local, |
| const String & | remote, | ||
| bool | out, | ||
| bool | auth = true ) |
Find a server to server or component stream by local/remote domain. Skip over outgoing dialback only streams This method is thread safe
| local | Local domain |
| remote | Remote domain |
| out | True to find an outgoing stream, false to find an incoming one. Ignored for component streams |
| auth | Check if the remote domain of an incoming s2s stream is authenticated |
|
inlineprotected |
Increment and return the stream index counter
References Mutex::lock().
Referenced by buildStreamName().
|
protectedvirtual |
|
protectedvirtual |
Retrieve the stream lists of a given type
| type | Stream type |
| recv | Receive stream list to set |
| process | Process stream list to set |
|
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 from JBEngine.
|
protectedvirtual |
Stop all stream sets
| waitTerminate | True to wait for all streams to terminate |
Reimplemented from JBEngine.
| unsigned int terminateClientStreams | ( | const JabberID & | jid, |
| XMPPError::Type | error = XMPPError::NoError, | ||
| const char * | reason = 0 ) |
Terminate all incoming c2s streams matching a given JID This method is thread safe
| jid | Client JID |
| error | Optional error to be sent to the client |
| reason | Optional error text to be sent to the client |