XMPPUtils Class Reference

General XMPP utilities. More...

#include <xmpputils.h>

List of all members.

Public Types

enum  IqType {
  IqSet, IqGet, IqResult, IqError,
  IqCount
}
enum  CommandAction {
  CommExecute, CommCancel, CommPrev, CommNext,
  CommComplete
}
enum  CommandStatus { CommExecuting, CommCompleted, CommCancelled }

Static Public Member Functions

static XMLElementcreateElement (const char *name, XMPPNamespace::Type ns, const char *text=0)
static XMLElementcreateElement (XMLElement::Type type, XMPPNamespace::Type ns, const char *text=0)
static XMLElementcreateIq (IqType type, const char *from, const char *to, const char *id)
static XMLElementcreateIqBind (const char *from, const char *to, const char *id, const ObjList &resources)
static XMLElementcreateVCard (bool get, const char *from, const char *to, const char *id)
static XMLElementcreateCommand (CommandAction action, const char *node, const char *sessionId=0)
static XMLElementcreateIdentity (const char *category, const char *type, const char *name)
static XMLElementcreateIqDisco (const char *from, const char *to, const char *id, bool info=true)
static XMLElementcreateDiscoInfoRes (const char *from, const char *to, const char *id, JIDFeatureList *features, JIDIdentity *identity)
static XMLElementcreateError (XMPPError::ErrorType type, XMPPError::Type error, const char *text=0)
static XMLElementcreateError (XMLElement *xml, XMPPError::ErrorType type, XMPPError::Type error, const char *text=0)
static XMLElementcreateStreamError (XMPPError::Type error, const char *text=0)
static XMLElementcreateRegisterQuery (IqType type, const char *from, const char *to, const char *id, XMLElement *child1=0, XMLElement *child2=0, XMLElement *child3=0)
static XMLElementcreateRegisterQuery (const char *from, const char *to, const char *id, const char *username, const char *password)
static bool hasXmlns (XMLElement &element, XMPPNamespace::Type ns)
static void decodeError (XMLElement *element, String &error, String &text)
static void encodeDateTimeSec (String &buf, unsigned int timeSec, unsigned int fractions=0)
static unsigned int decodeDateTimeSec (const String &time, unsigned int *fractions=0)
static void print (String &xmlStr, XMLElement &element, const char *indent=0)
static bool split (NamedList &dest, const char *src, const char sep, bool nameFirst)
static int decodeFlags (const String &src, const TokenDict *dict)
static void buildFlags (String &dest, int src, const TokenDict *dict)
static bool addChidren (XMLElement *dest, ObjList &list)
static IqType iqType (const char *text)

Static Public Attributes

static TokenDict s_iq []
static TokenDict s_commandAction []
static TokenDict s_commandStatus []

Detailed Description

General XMPP utilities.

This class is a general XMPP utilities


Member Enumeration Documentation

Command action enumeration

Command status enumeration

enum IqType

Iq type enumeration


Member Function Documentation

static bool addChidren ( XMLElement dest,
ObjList list 
) [static]

Add child elements from a list to a destination element

Parameters:
dest Destination XMLElement
list A list containing XML elements
Returns:
True if at least one child was added
static void buildFlags ( String dest,
int  src,
const TokenDict dict 
) [static]

Encode a mask of flags to a comma separated list of names

Parameters:
dest Destination string
src Source mask
dict Dictionary containing flag names and values
static XMLElement* createCommand ( CommandAction  action,
const char *  node,
const char *  sessionId = 0 
) [static]

Create a 'command' element

Parameters:
action The command action
node The command
sessionId Optional session ID for the command
Returns:
A valid XMLElement pointer
static XMLElement* createDiscoInfoRes ( const char *  from,
const char *  to,
const char *  id,
JIDFeatureList features,
JIDIdentity identity 
) [static]

Create an 'iq' of type 'result' element with a 'query' child in response to a disco info request

Parameters:
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
features Features to be added to response
identity The identity of the entity sending the response
Returns:
A valid XMLElement pointer

Referenced by XMPPUserRoster::createDiscoInfoResult().

static XMLElement* createElement ( XMLElement::Type  type,
XMPPNamespace::Type  ns,
const char *  text = 0 
) [static]

Create an XML element with an 'xmlns' attribute

Parameters:
type Element's type
ns 'xmlns' attribute
text Optional text for the element
Returns:
A valid XMLElement pointer
static XMLElement* createElement ( const char *  name,
XMPPNamespace::Type  ns,
const char *  text = 0 
) [static]

Create an XML element with an 'xmlns' attribute

Parameters:
name Element's name
ns 'xmlns' attribute
text Optional text for the element
Returns:
A valid XMLElement pointer
static XMLElement* createError ( XMLElement xml,
XMPPError::ErrorType  type,
XMPPError::Type  error,
const char *  text = 0 
) [static]

Create an error from a received element. Consume the received element Reverse 'to' and 'from' attributes

Parameters:
xml Received element
type Error type
error The error
text Optional text to add to the error element
Returns:
A valid XMLElement pointer or 0 if xml is 0
static XMLElement* createError ( XMPPError::ErrorType  type,
XMPPError::Type  error,
const char *  text = 0 
) [static]

Create a 'error' element

Parameters:
type Error type
error The error
text Optional text to add to the error element
Returns:
A valid XMLElement pointer
static XMLElement* createIdentity ( const char *  category,
const char *  type,
const char *  name 
) [static]

Create an 'identity' element

Parameters:
category The 'category' attribute
type The 'type' attribute
name The 'name' attribute
Returns:
A valid XMLElement pointer
static XMLElement* createIq ( IqType  type,
const char *  from,
const char *  to,
const char *  id 
) [static]

Create an 'iq' element

Parameters:
type Iq type as enumeration
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
Returns:
A valid XMLElement pointer
static XMLElement* createIqBind ( const char *  from,
const char *  to,
const char *  id,
const ObjList resources 
) [static]

Create an 'iq' element with a 'bind' child containing the resources

Parameters:
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
resources The resources to bind (strings)
Returns:
A valid XMLElement pointer
static XMLElement* createIqDisco ( const char *  from,
const char *  to,
const char *  id,
bool  info = true 
) [static]

Create an 'iq' of type 'get' element with a 'query' child

Parameters:
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
info True to create a query info request. False to create a query items request
Returns:
A valid XMLElement pointer
static XMLElement* createRegisterQuery ( const char *  from,
const char *  to,
const char *  id,
const char *  username,
const char *  password 
) [inline, static]

Build an register query element used to create/set username/password

Parameters:
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
username The username
password The password
Returns:
Valid XMLElement pointer
static XMLElement* createRegisterQuery ( IqType  type,
const char *  from,
const char *  to,
const char *  id,
XMLElement child1 = 0,
XMLElement child2 = 0,
XMLElement child3 = 0 
) [static]

Build a register query element

Parameters:
type Iq type as enumeration
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
child1 Optional child of query element
child2 Optional child of query element
child3 Optional child of query element
Returns:
Valid XMLElement pointer
static XMLElement* createStreamError ( XMPPError::Type  error,
const char *  text = 0 
) [static]

Create a 'stream:error' element

Parameters:
error The XMPP defined condition
text Optional text to add to the error
Returns:
A valid XMLElement pointer
static XMLElement* createVCard ( bool  get,
const char *  from,
const char *  to,
const char *  id 
) [static]

Create an 'iq' element with a 'vcard' child

Parameters:
get True to set the iq's type to 'get', false to set it to 'set'
from The 'from' attribute
to The 'to' attribute
id The 'id' attribute
Returns:
A valid XMLElement pointer
static unsigned int decodeDateTimeSec ( const String time,
unsigned int *  fractions = 0 
) [static]

Decode a date/time profile as defined in XEP-0082 and XML Schema Part 2: Datatypes Second Edition to EPOCH time

Parameters:
time The date/time string
fractions Pointer to integer to be filled with second fractions, if present
Returns:
The decoded time in seconds, -1 on error
static void decodeError ( XMLElement element,
String error,
String text 
) [static]

Decode a received stream error or stanza error

Parameters:
element The received element
error The error condition
text The stanza's error or error text
static int decodeFlags ( const String src,
const TokenDict dict 
) [static]

Decode a comma separated list of flags and put them into an integer mask

Parameters:
src Source string
dict Dictionary containing flag names and values
Returns:
The mask of found flags
static void encodeDateTimeSec ( String buf,
unsigned int  timeSec,
unsigned int  fractions = 0 
) [static]

Encode EPOCH time given in seconds to a date/time profile as defined in XEP-0082 and XML Schema Part 2: Datatypes Second Edition

Parameters:
buf Destination string
timeSec The time to encode (in seconds)
fractions Optional second fractions
static bool hasXmlns ( XMLElement element,
XMPPNamespace::Type  ns 
) [static]

Check if the given element has an attribute 'xmlns' equal to a given value

Parameters:
element Element to check
ns Namespace value to check
Returns:
True if the given element has the requested namespace
static IqType iqType ( const char *  text  )  [inline, static]

Get the type of an 'iq' stanza as enumeration

Parameters:
text The text to check
Returns:
Iq type as enumeration

References TelEngine::lookup().

static void print ( String xmlStr,
XMLElement element,
const char *  indent = 0 
) [static]

Print an XMLElement to a string

Parameters:
xmlStr The destination string
element The element to print
indent The indent. 0 if it is the root element
static bool split ( NamedList dest,
const char *  src,
const char  sep,
bool  nameFirst 
) [static]

Split a string at a delimiter character and fills a named list with its parts Skip empty parts

Parameters:
dest The destination NamedList
src Pointer to the string
sep The delimiter
nameFirst True to add the parts as name and index as value. False to do the other way

Member Data Documentation

Keep the command actions

Keep the command status

TokenDict s_iq[] [static]

Keep the types of 'iq' stanzas


The documentation for this class was generated from the following file:
Generated on Thu Apr 8 18:22:38 2010 for Yate by  doxygen 1.6.3