Yate
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
JBEntityCapsList Class Reference

Entity capability list manager. More...

#include <yatejabber.h>

Inheritance diagram for JBEntityCapsList:
ObjList Mutex GenObject Lockable

List of all members.

Public Member Functions

 JBEntityCapsList ()
JBEntityCapsfindCaps (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)
XmlDocumenttoDocument (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

Detailed Description

Entity capability list manager.

This class holds data and offer entity capability services. Implements XEP 0115 support


Constructor & Destructor Documentation

JBEntityCapsList ( ) [inline]

Constructor

References Time::msecNow().


Member Function Documentation

void addCaps ( NamedList list,
const String id 
) [inline]

Add capabilities to a list. This method is thread safe

Parameters:
listDestination list
idEntity caps id
virtual void addCaps ( NamedList list,
JBEntityCaps caps 
) [virtual]

Add capabilities to a list. This method is not thread safe

Parameters:
listDestination list
capsEntity 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

Parameters:
capsChanged 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

Parameters:
xmlThe element to process
versionEntity caps version
nodeEntity node attribute
verEntity ver attribute
extEntity ext attribute if version is less the 1.4
Returns:
True if a child was succesfully decoded
void expire ( u_int64_t  msecNow = Time::msecNow())

Expire pending requests. This method is thread safe

Parameters:
msecNowCurrent time
JBEntityCaps* findCaps ( const String id) [inline]

Retrieve an entity caps object. This method is not thread safe

Parameters:
idThe id to find
Returns:
JBEntityCaps pointer or 0

References ObjList::skipNext().

void fromDocument ( XmlDocument doc,
const char *  rootName = "entitycaps" 
)

Build this list from an XML document. This method is thread safe

Parameters:
docDocument to build from
rootNameDocument root element name (it will be checked if set)
Returns:
XmlDocument pointer
bool loadXmlDoc ( const char *  file,
DebugEnabler enabler = 0 
)

Load (reset) this list from an XML document file. This method is thread safe

Parameters:
fileThe file to load
enablerThe debug enabler used to output messages
Returns:
True on success
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

Parameters:
capsIdString to be filled with entity caps object id (empty if an entity caps child is not found in element )
xmlXML element to process
streamThe stream used to request capabilities
fromThe 'from' attribute of the request stanza
toThe 'to' attribute of the request stanza
Returns:
True if processed (already found, added or request sent)
bool processRsp ( XmlElement rsp,
const String id,
bool  ok 
)

Process a response. This method is thread safe

Parameters:
rspThe element to process
idThe element's id
okTrue if the response is a result one, false if it's an error
Returns:
True if the element was processed (handled)
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

Parameters:
streamThe stream to send the request
fromThe 'from' attribute
toThe 'to' attribute
idEntity caps id
versionEntity caps version
nodeEntity node
dataEntity caps data
bool saveXmlDoc ( const char *  file,
DebugEnabler enabler = 0 
)

Save this list to an XML document file. This method is thread safe

Parameters:
fileThe file to save
enablerThe debug enabler used to output messages
Returns:
True on success
XmlDocument* toDocument ( const char *  rootName = "entitycaps")

Build an XML document from this list. This method is thread safe

Parameters:
rootNameDocument root element name
Returns:
XmlDocument pointer

Member Data Documentation

bool m_enable

Enabled flag


The documentation for this class was generated from the following file: