|
Yate
|
A Jabber engine. More...
#include <yatejabber.h>
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
| 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 |
Add a stream to one of the stream lists
| stream | The stream to add |
Reimplemented in JBServerEngine, and JBClientEngine.
|
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.
Check if an outgoing stream exists with the same id and remote peer
| stream | The calling stream |
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 JBServerEngine, and JBClientEngine.
Start stream compression
| stream | The stream to compress |
| formats | Supported formats |
Connect an outgoing stream
| stream | The stream to connect |
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 |
Referenced by JBEngine::setExiting().
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 JBServerEngine, and JBClientEngine.
Referenced by JBEngine::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 JBEngine::getStreamList().
|
inline |
Check if TLS is available for outgoing streams
Check if a domain is serviced by this engine
| domain | Domain to check |
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 |
Print an XML fragment to output
| stream | Stream requesting the operation |
| send | True if sending, false if receiving |
| frag | XML fragment to print |
Process an event. The default implementation will return the event to this engine
| ev | The event to process |
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().
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 JBServerEngine, and JBClientEngine.
|
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 JBEngine::dropAll(), and JabberID::empty().
Stop all stream sets
| waitTerminate | True to wait for all streams to terminate |
Reimplemented in JBServerEngine, and JBClientEngine.
Retrieve the stream read buffer length