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) |
Static Public Member Functions | |
static bool | decodeCaps (const XmlElement &xml, char &version, String *&node, String *&ver, String *&ext) |
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
JBEntityCapsList | ( | ) | [inline] |
Constructor
References Time::msecNow().
Add capabilities to a list. This method is thread safe
list | Destination list |
id | Entity caps id |
virtual void addCaps | ( | NamedList & | list, |
JBEntityCaps & | caps | ||
) | [virtual] |
Add capabilities to a list. This method is not thread safe
list | Destination list |
caps | Entity caps to add |
virtual void capsAdded | ( | JBEntityCaps * | caps | ) | [inline, protected, virtual] |
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 bool decodeCaps | ( | const XmlElement & | xml, |
char & | version, | ||
String *& | node, | ||
String *& | ver, | ||
String *& | ext | ||
) | [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 |
JBEntityCaps* findCaps | ( | const String & | id | ) | [inline] |
Retrieve an entity caps object. This method is not thread safe
id | The id to find |
References ObjList::skipNext().
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 bool processCaps | ( | String & | capsId, |
XmlElement * | xml, | ||
JBStream * | stream, | ||
const char * | from, | ||
const char * | to | ||
) | [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