|
Yate
|
Entity capability list manager. More...
#include <yatejabber.h>
Public Member Functions | |
| JBEntityCapsList () | |
| JBEntityCaps * | findCaps (const String &id) |
| void | expire (u_int64_t msecNow=Time::msecNow()) |
| bool | processRsp (XmlElement *rsp, const String &id, bool ok) |
| void | requestCaps (JBStream *stream, const char *from, const char *to, const String &id, char version, const char *node, const char *data) |
| XmlDocument * | toDocument (const char *rootName="entitycaps") |
| void | fromDocument (XmlDocument &doc, const char *rootName="entitycaps") |
| virtual bool | processCaps (String &capsId, XmlElement *xml, JBStream *stream, const char *from, const char *to) |
| void | addCaps (NamedList &list, const String &id) |
| virtual void | addCaps (NamedList &list, JBEntityCaps &caps) |
| bool | loadXmlDoc (const char *file, DebugEnabler *enabler=0) |
| bool | saveXmlDoc (const char *file, DebugEnabler *enabler=0) |
Public Member Functions inherited from ObjList | |
| ObjList () | |
| virtual | ~ObjList () |
| virtual void * | getObject (const String &name) const |
| unsigned int | length () const |
| unsigned int | count () const |
| GenObject * | get () const |
| GenObject * | set (const GenObject *obj, bool delold=true) |
| ObjList * | next () const |
| ObjList * | last () const |
| ObjList * | skipNull () const |
| ObjList * | skipNext () const |
| GenObject * | at (int index) const |
| ObjList * | operator+ (int index) const |
| GenObject * | operator[] (signed int index) const |
| GenObject * | operator[] (unsigned int index) const |
| GenObject * | operator[] (const String &str) const |
| ObjList * | find (const GenObject *obj) const |
| ObjList * | find (const String &str) const |
| int | index (const GenObject *obj) const |
| int | index (const String &str) const |
| ObjList * | insert (const GenObject *obj, bool compact=true) |
| ObjList * | append (const GenObject *obj, bool compact=true) |
| ObjList * | setUnique (const GenObject *obj, bool compact=true) |
| GenObject * | remove (bool delobj=true) |
| GenObject * | remove (GenObject *obj, bool delobj=true) |
| GenObject * | remove (const String &str, bool delobj=true) |
| void | clear () |
| void | compact () |
| bool | autoDelete () |
| void | setDelete (bool autodelete) |
| void | sort (int(*callbackCompare)(GenObject *obj1, GenObject *obj2, void *context), void *context=0) |
Public Member Functions inherited from GenObject | |
| GenObject () | |
| virtual | ~GenObject () |
| virtual bool | alive () const |
| virtual void | destruct () |
| virtual const String & | toString () const |
| virtual const String & | traceId () const |
| NamedCounter * | getObjCounter () const |
| NamedCounter * | setObjCounter (NamedCounter *counter) |
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 () |
Static Public Member Functions | |
| static bool | decodeCaps (const XmlElement &xml, char &version, String *&node, String *&ver, String *&ext) |
Static Public Member Functions inherited from ObjList | |
| static const ObjList & | empty () |
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 () |
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 () |
Public Attributes | |
| bool | m_enable |
Protected Member Functions | |
| virtual void | capsAdded (JBEntityCaps *caps) |
Protected Attributes | |
| unsigned int | m_reqIndex |
| String | m_reqPrefix |
| ObjList | m_requests |
Entity capability list manager.
This class holds data and offer entity capability services. Implements XEP 0115 support
|
inline |
Constructor
References m_enable, Time::msecNow(), and Mutex::Mutex().
Add capabilities to a list. This method is thread safe
| list | Destination list |
| id | Entity caps id |
References addCaps(), findCaps(), and Mutex::lock().
Referenced by addCaps().
|
virtual |
Add capabilities to a list. This method is not thread safe
| list | Destination list |
| caps | Entity caps to add |
|
inlineprotectedvirtual |
Caps list item add notification for descendants. This method is called when processing responses with the list locked
| caps | Changed caps object. 0 if none specified |
|
static |
Check if an XML element has a 'c' entity capability child and decode it
| xml | The element to process |
| version | Entity caps version |
| node | Entity node attribute |
| ver | Entity ver attribute |
| ext | Entity ext attribute if version is less the 1.4 |
| void expire | ( | u_int64_t | msecNow = Time::msecNow() | ) |
Expire pending requests. This method is thread safe
| msecNow | Current time |
References Time::msecNow().
|
inline |
Retrieve an entity caps object. This method is not thread safe
| id | The id to find |
References ObjList::ObjList(), ObjList::skipNext(), and ObjList::skipNull().
Referenced by addCaps().
| void fromDocument | ( | XmlDocument & | doc, |
| const char * | rootName = "entitycaps" ) |
Build this list from an XML document. This method is thread safe
| doc | Document to build from |
| rootName | Document root element name (it will be checked if set) |
| bool loadXmlDoc | ( | const char * | file, |
| DebugEnabler * | enabler = 0 ) |
Load (reset) this list from an XML document file. This method is thread safe
| file | The file to load |
| enabler | The debug enabler used to output messages |
|
virtual |
Process an element containing an entity capabily child. Request capabilities if not found in the list. This method is thread safe
| capsId | String to be filled with entity caps object id (empty if an entity caps child is not found in element ) |
| xml | XML element to process |
| stream | The stream used to request capabilities |
| from | The 'from' attribute of the request stanza |
| to | The 'to' attribute of the request stanza |
| bool processRsp | ( | XmlElement * | rsp, |
| const String & | id, | ||
| bool | ok ) |
Process a response. This method is thread safe
| rsp | The element to process |
| id | The element's id |
| ok | True if the response is a result one, false if it's an error |
| void requestCaps | ( | JBStream * | stream, |
| const char * | from, | ||
| const char * | to, | ||
| const String & | id, | ||
| char | version, | ||
| const char * | node, | ||
| const char * | data ) |
Request entity capabilities. This method is thread safe
| stream | The stream to send the request |
| from | The 'from' attribute |
| to | The 'to' attribute |
| id | Entity caps id |
| version | Entity caps version |
| node | Entity node |
| data | Entity caps data |
| bool saveXmlDoc | ( | const char * | file, |
| DebugEnabler * | enabler = 0 ) |
Save this list to an XML document file. This method is thread safe
| file | The file to save |
| enabler | The debug enabler used to output messages |
| XmlDocument * toDocument | ( | const char * | rootName = "entitycaps" | ) |
Build an XML document from this list. This method is thread safe
| rootName | Document root element name |
| bool m_enable |
Enabled flag
Referenced by JBEntityCapsList().