Stanza Class Reference

This is an abstraction of a XMPP stanza. More...

#include <stanza.h>

Inherits Tag.

Inheritance diagram for Stanza:

Inheritance graph
[legend]
Collaboration diagram for Stanza:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Stanza (Tag *tag)
 Stanza (const std::string &name, const std::string &cdata="", const std::string &xmllang="default")
virtual ~Stanza ()
virtual StanzaSubType subtype () const
virtual const JIDfrom () const
virtual const JIDto () const
virtual const std::string id () const
virtual const std::string & xmlns () const
virtual PresenceStatus show () const
virtual const std::string status (const std::string &lang="default") const
virtual const std::string body (const std::string &lang="default") const
virtual const std::string subject (const std::string &lang="default") const
virtual const std::string errorText (const std::string &lang="default") const
virtual StanzaError error () const
TagerrorAppCondition ()
virtual const std::string thread () const
const std::string & xmlLang () const
void finalize ()
virtual Stanzaclone (bool=true)

Static Public Member Functions

static StanzacreateIqStanza (const JID &to, const std::string &id, StanzaSubType subtype=STANZA_IQ_GET, const std::string &xmlns="", Tag *tag=0)
static StanzacreatePresenceStanza (const JID &to, const std::string &msg="", PresenceStatus status=PRESENCE_AVAILABLE, const std::string &xmllang="")
static StanzacreateMessageStanza (const JID &to, const std::string &body, StanzaSubType subtype=STANZA_MESSAGE_CHAT, const std::string &subject="", const std::string &thread="", const std::string &xmllang="")
static StanzacreateSubscriptionStanza (const JID &to, const std::string &msg="", StanzaSubType subtype=STANZA_S10N_SUBSCRIBE, const std::string &xmllang="")

Protected Member Functions

void init ()

Protected Attributes

StanzaSubType m_subtype
PresenceStatus m_show
StanzaError m_stanzaError
StanzaErrorType m_stanzaErrorType
Tagm_stanzaErrorAppCondition
StringMap m_errorText
StringMap m_body
StringMap m_subject
StringMap m_status
JID m_from
JID m_to
std::string m_xmlns
std::string m_id
std::string m_thread
std::string m_xmllang
int m_priority

Detailed Description

This is an abstraction of a XMPP stanza.

You can create a new Stanza from an existing Tag (or another stanza).

Author:
Jakob Schroeter <js@camaya.net>
Since:
0.4

Definition at line 31 of file stanza.h.


Constructor & Destructor Documentation

Stanza Tag tag  ) 
 

Creates a new Stanza from a deep copy of the given Tag.

Parameters:
tag The Tag to create the Stanza from.
Since:
0.7
Note:
While the signature of this constructor in 0.7 is the the same as in older versions, semantics have changed. The copy created by this constructor is no longer a shallow one. You have to make sure the copy is deleted properly.

Definition at line 27 of file stanza.cpp.

References Tag::addChild(), Tag::attributes(), Tag::children(), and Tag::m_attribs.

Referenced by Stanza::clone(), Stanza::createIqStanza(), Stanza::createMessageStanza(), Stanza::createPresenceStanza(), and Stanza::createSubscriptionStanza().

Stanza const std::string &  name,
const std::string &  cdata = "",
const std::string &  xmllang = "default"
 

Creates a new Stanza with given name and optional CData.

Parameters:
name The name of the root tag.
cdata Initial XML character data for the tag.
xmllang The value of the xmllang attribute. The stanza's primary language.

Definition at line 20 of file stanza.cpp.

virtual ~Stanza  )  [inline, virtual]
 

Virtual destructor.

Definition at line 57 of file stanza.h.


Member Function Documentation

const std::string body const std::string &  lang = "default"  )  const [virtual]
 

Returns the body of a message stanza for the given language if available. If the requested language is not available, the default body (without a xml:lang attribute) will be returned.

Parameters:
lang The language identifier for the desired language. It must conform to section 2.12 of the XML specification and RFC 3066. If empty, the default body will be returned, if any.
Returns:
The body of a message stanza. Empty for non-message stanzas.

Definition at line 295 of file stanza.cpp.

References Stanza::m_body.

Stanza * clone bool  = true  )  [virtual]
 

This function creates a deep copy of this Stanza.

Returns:
An independent copy of the stanza.
Since:
0.7

Definition at line 331 of file stanza.cpp.

References Stanza::Stanza().

Stanza * createIqStanza const JID to,
const std::string &  id,
StanzaSubType  subtype = STANZA_IQ_GET,
const std::string &  xmlns = "",
Tag tag = 0
[static]
 

Creates a new IQ stanza.

Parameters:
to The receiver of the stanza.
id An ID for the stanza. Best is to use ClientBase::getID() as input.
subtype The IQ type. Only STANZA_IQ_* types are valid.
xmlns If this is non-empty, a child element named 'query' will be included, with this value as value of the 'xmlns' attribute.
tag If this if not NULL, and xmlns is not empty, this Tag will be included as child tag of the 'query' element.
Since:
0.7

Definition at line 337 of file stanza.cpp.

References Tag::addAttrib(), Stanza::Stanza(), gloox::STANZA_IQ_ERROR, gloox::STANZA_IQ_GET, gloox::STANZA_IQ_RESULT, gloox::STANZA_IQ_SET, and Tag::Tag().

Stanza * createMessageStanza const JID to,
const std::string &  body,
StanzaSubType  subtype = STANZA_MESSAGE_CHAT,
const std::string &  subject = "",
const std::string &  thread = "",
const std::string &  xmllang = ""
[static]
 

Creates a new message stanza.

Parameters:
to The receiver of the message.
body The message's body.
subtype The message type. Only STANZA_MESSAGE_* types are vaild.
subject The message's subject.
thread The message's conversation thread id.
xmllang The message's language.
Since:
0.7

Definition at line 411 of file stanza.cpp.

References Tag::addAttrib(), JID::full(), Stanza::Stanza(), gloox::STANZA_MESSAGE_CHAT, gloox::STANZA_MESSAGE_ERROR, gloox::STANZA_MESSAGE_GROUPCHAT, gloox::STANZA_MESSAGE_HEADLINE, gloox::STANZA_MESSAGE_NORMAL, Tag::Tag(), and Stanza::to().

Stanza * createPresenceStanza const JID to,
const std::string &  msg = "",
PresenceStatus  status = PRESENCE_AVAILABLE,
const std::string &  xmllang = ""
[static]
 

Creates a new presence stanza.

Parameters:
to The receiver of the stanza.
msg An optional message.
status The status.
xmllang The status's language.
Since:
0.7

Definition at line 373 of file stanza.cpp.

References Tag::addAttrib(), Tag::addChild(), JID::empty(), JID::full(), gloox::PRESENCE_AWAY, gloox::PRESENCE_CHAT, gloox::PRESENCE_DND, gloox::PRESENCE_UNAVAILABLE, gloox::PRESENCE_XA, Stanza::Stanza(), Tag::Tag(), and Stanza::to().

Stanza * createSubscriptionStanza const JID to,
const std::string &  msg = "",
StanzaSubType  subtype = STANZA_S10N_SUBSCRIBE,
const std::string &  xmllang = ""
[static]
 

Creates a new subscription stanza.

Parameters:
to The recipient of the subscription stanza.
msg An optional message.
subtype The subscription type. Only STANZA_S10N_* types are vaild.
xmllang The message's language.
Since:
0.7

Definition at line 456 of file stanza.cpp.

References Tag::addAttrib(), JID::full(), Stanza::Stanza(), gloox::STANZA_S10N_SUBSCRIBE, gloox::STANZA_S10N_SUBSCRIBED, gloox::STANZA_S10N_UNSUBSCRIBE, gloox::STANZA_S10N_UNSUBSCRIBED, Tag::Tag(), and Stanza::to().

virtual StanzaError error  )  const [inline, virtual]
 

Returnes the stanza error condition, if any.

Returns:
The stanza error condition.

Definition at line 143 of file stanza.h.

Referenced by LastActivity::handleIqID(), and FlexibleOffline::handleIqID().

Tag* errorAppCondition  )  [inline]
 

This function can be used to retrieve the application-specific error condition of a stanza error.

Returns:
The application-specific error element of a stanza error. 0 if no respective element was found or no error occured.

Definition at line 150 of file stanza.h.

const std::string errorText const std::string &  lang = "default"  )  const [virtual]
 

Returns the text of a error stanza for the given language if available. If the requested language is not available, the default text (without a xml:lang attribute) will be returned.

Parameters:
lang The language identifier for the desired language. It must conform to section 2.12 of the XML specification and RFC 3066. If empty, the default subject will be returned, if any.
Returns:
The text of an error stanza. Empty for non-error stanzas.

Definition at line 322 of file stanza.cpp.

References Stanza::m_errorText.

void finalize  )  [inline]
 

Use this function to parse the content of the Tag and determine type, etc. of the Stanza. This feels kind of hackish... You only need to call this if you are constructing a bare Stanza from scratch. Stanzas provided by gloox are fully parsed.

Deprecated:

Definition at line 171 of file stanza.h.

virtual const JID& from  )  const [inline, virtual]
 

Returns the JID the stanza comes from.

Returns:
The origin of the stanza.

Definition at line 69 of file stanza.h.

Referenced by LastActivity::handleIq(), Disco::handleIq(), LastActivity::handleIqID(), RosterManager::handlePresence(), and RosterManager::handleSubscription().

virtual const std::string id  )  const [inline, virtual]
 

Returns the id of the stanza, if set.

Returns:
The ID of the stanza.

Definition at line 81 of file stanza.h.

Referenced by PrivacyManager::handleIq(), LastActivity::handleIq(), Disco::handleIq(), PrivateXML::handleIqID(), PrivacyManager::handleIqID(), and Disco::handleIqID().

virtual PresenceStatus show  )  const [inline, virtual]
 

Returns the presence 'show' type of a presence stanza.

Returns:
The presence type of the sender.

Definition at line 93 of file stanza.h.

Referenced by RosterManager::handlePresence().

const std::string status const std::string &  lang = "default"  )  const [virtual]
 

Returns the status text of a presence stanza for the given language if available. If the requested language is not available, the default status text (without a xml:lang attribute) will be returned.

Parameters:
lang The language identifier for the desired language. It must conform to section 2.12 of the XML specification and RFC 3066. If empty, the default body will be returned, if any.
Returns:
The status text set by the sender.

Definition at line 313 of file stanza.cpp.

References Stanza::m_status.

Referenced by RosterManager::handlePresence(), and RosterManager::handleSubscription().

const std::string subject const std::string &  lang = "default"  )  const [virtual]
 

Returns the subject of a message stanza for the given language if available. If the requested language is not available, the default subject (without a xml:lang attribute) will be returned.

Parameters:
lang The language identifier for the desired language. It must conform to section 2.12 of the XML specification and RFC 3066. If empty, the default subject will be returned, if any.
Returns:
The subject of a message stanza. Empty for non-message stanzas.

Definition at line 304 of file stanza.cpp.

References Stanza::m_subject.

virtual StanzaSubType subtype  )  const [inline, virtual]
 

Returns the sub-type of the stanza.

Returns:
The sub-type of the stanza.

Definition at line 63 of file stanza.h.

Referenced by RosterManager::handleIq(), Registration::handleIq(), PrivacyManager::handleIq(), LastActivity::handleIq(), Disco::handleIq(), Registration::handleIqID(), PrivateXML::handleIqID(), PrivacyManager::handleIqID(), NonSaslAuth::handleIqID(), LastActivity::handleIqID(), FlexibleOffline::handleIqID(), Disco::handleIqID(), and RosterManager::handleSubscription().

virtual const std::string thread  )  const [inline, virtual]
 

Returns the thread ID of a message stanza.

Returns:
The thread ID of a message stanza. Empty for non-message stanzas.

Definition at line 156 of file stanza.h.

virtual const JID& to  )  const [inline, virtual]
 

Returns the receiver of the stanza.

Returns:
The stanza's destination.

Definition at line 75 of file stanza.h.

Referenced by Stanza::createMessageStanza(), Stanza::createPresenceStanza(), and Stanza::createSubscriptionStanza().

const std::string& xmlLang  )  const [inline]
 

Retrieves the value of the xml:lang attribute of this stanza. Default is 'en'.

Definition at line 162 of file stanza.h.

virtual const std::string& xmlns  )  const [inline, virtual]
 

Returns the value of the xmlns attribute of the first child node.

Returns:
The namespace of the IQ stanza.

Definition at line 87 of file stanza.h.

Referenced by Disco::handleIq().


The documentation for this class was generated from the following files:
Generated on Mon Jan 16 16:20:01 2006 for gloox by  doxygen 1.4.6