WockyXmppStanza

WockyXmppStanza

Synopsis

                    WockyXmppStanza;
                    WockyXmppStanzaClass;
enum                WockyStanzaType;
enum                WockyStanzaSubType;
enum                WockyBuildTag;
WockyXmppStanza *   wocky_xmpp_stanza_new               (const gchar *name);
WockyXmppStanza *   wocky_xmpp_stanza_build             (WockyStanzaType type,
                                                         WockyStanzaSubType sub_type,
                                                         const gchar *from,
                                                         const gchar *to,
                                                         WockyBuildTag spec,
                                                         ...);
void                wocky_xmpp_stanza_get_type_info     (WockyXmppStanza *stanza,
                                                         WockyStanzaType *type,
                                                         WockyStanzaSubType *sub_type);
WockyXmppStanza *   wocky_xmpp_stanza_build_va          (WockyStanzaType type,
                                                         WockyStanzaSubType sub_type,
                                                         const gchar *from,
                                                         const gchar *to,
                                                         WockyBuildTag spec,
                                                         va_list ap);
WockyXmppStanza *   wocky_xmpp_stanza_build_iq_result   (WockyXmppStanza *iq,
                                                         WockyBuildTag spec,
                                                         ...);
WockyXmppStanza *   wocky_xmpp_stanza_build_iq_error    (WockyXmppStanza *iq,
                                                         WockyBuildTag spec,
                                                         ...);
gboolean            wocky_xmpp_stanza_extract_errors    (WockyXmppStanza *stanza,
                                                         WockyXmppErrorType *type,
                                                         GError **core,
                                                         GError **specialized,
                                                         WockyXmppNode **specialized_node);
gboolean            wocky_xmpp_stanza_extract_stream_error
                                                        (WockyXmppStanza *stanza,
                                                         GError **stream_error);

Object Hierarchy

  GObject
   +----WockyXmppStanza

Description

Details

WockyXmppStanza

typedef struct _WockyXmppStanza WockyXmppStanza;


WockyXmppStanzaClass

typedef struct {
    GObjectClass parent_class;
} WockyXmppStanzaClass;


enum WockyStanzaType

typedef enum
{
  WOCKY_STANZA_TYPE_NONE,
  WOCKY_STANZA_TYPE_MESSAGE,
  WOCKY_STANZA_TYPE_PRESENCE,
  WOCKY_STANZA_TYPE_IQ,
  WOCKY_STANZA_TYPE_STREAM,
  WOCKY_STANZA_TYPE_STREAM_FEATURES,
  WOCKY_STANZA_TYPE_AUTH,
  WOCKY_STANZA_TYPE_CHALLENGE,
  WOCKY_STANZA_TYPE_RESPONSE,
  WOCKY_STANZA_TYPE_SUCCESS,
  WOCKY_STANZA_TYPE_FAILURE,
  WOCKY_STANZA_TYPE_STREAM_ERROR,
  WOCKY_STANZA_TYPE_UNKNOWN,
  NUM_WOCKY_STANZA_TYPE
} WockyStanzaType;


enum WockyStanzaSubType

typedef enum
{
  WOCKY_STANZA_SUB_TYPE_NONE,
  WOCKY_STANZA_SUB_TYPE_AVAILABLE,
  WOCKY_STANZA_SUB_TYPE_NORMAL,
  WOCKY_STANZA_SUB_TYPE_CHAT,
  WOCKY_STANZA_SUB_TYPE_GROUPCHAT,
  WOCKY_STANZA_SUB_TYPE_HEADLINE,
  WOCKY_STANZA_SUB_TYPE_UNAVAILABLE,
  WOCKY_STANZA_SUB_TYPE_PROBE,
  WOCKY_STANZA_SUB_TYPE_SUBSCRIBE,
  WOCKY_STANZA_SUB_TYPE_UNSUBSCRIBE,
  WOCKY_STANZA_SUB_TYPE_SUBSCRIBED,
  WOCKY_STANZA_SUB_TYPE_UNSUBSCRIBED,
  WOCKY_STANZA_SUB_TYPE_GET,
  WOCKY_STANZA_SUB_TYPE_SET,
  WOCKY_STANZA_SUB_TYPE_RESULT,
  WOCKY_STANZA_SUB_TYPE_ERROR,
  WOCKY_STANZA_SUB_TYPE_UNKNOWN,
  NUM_WOCKY_STANZA_SUB_TYPE
} WockyStanzaSubType;


enum WockyBuildTag

typedef enum
{
  WOCKY_NODE,
  WOCKY_NODE_TEXT,
  WOCKY_NODE_END,
  WOCKY_NODE_ATTRIBUTE,
  WOCKY_NODE_XMLNS,
  WOCKY_NODE_ASSIGN_TO,
  WOCKY_STANZA_END
} WockyBuildTag;


wocky_xmpp_stanza_new ()

WockyXmppStanza *   wocky_xmpp_stanza_new               (const gchar *name);

name :

Returns :


wocky_xmpp_stanza_build ()

WockyXmppStanza *   wocky_xmpp_stanza_build             (WockyStanzaType type,
                                                         WockyStanzaSubType sub_type,
                                                         const gchar *from,
                                                         const gchar *to,
                                                         WockyBuildTag spec,
                                                         ...);

Build a XMPP stanza from a list of arguments. Example:

Example 1. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
wocky_xmpp_stanza_build (
   WOCKY_STANZA_TYPE_MESSAGE, WOCKY_STANZA_SUB_TYPE_NONE,
   "alice@collabora.co.uk", "bob@collabora.co.uk",
   WOCKY_NODE, "html",
     WOCKY_NODE_XMLNS, "http://www.w3.org/1999/xhtml",
     WOCKY_NODE, "body",
       WOCKY_NODE_ATTRIBUTE, "textcolor", "red",
       WOCKY_NODE_TEXT, "Telepathy rocks!",
     WOCKY_NODE_END,
   WOCKY_NODE_END,
  WOCKY_STANZA_END);

/* produces
<message from='alice@collabora.co.uk' to='bob@collabora.co.uk'>
  <html xmlns='http://www.w3.org/1999/xhtml'>
    <body textcolor='red'>
      Telepathy rocks!
    </body>
  </html>
</message>
*/


type :

The type of stanza to build

sub_type :

The stanza's subtype; valid values depend on type. (For instance, WOCKY_STANZA_TYPE_IQ can use WOCKY_STANZA_SUB_TYPE_GET, but not WOCKY_STANZA_SUB_TYPE_SUBSCRIBED.)

from :

The sender's JID, or NULL to leave it unspecified.

to :

The target's JID, or NULL to leave it unspecified.

spec :

The beginning of a description of the stanza to build, or WOCKY_STANZA_END to build an empty stanza

... :

The rest of the description of the stanza to build, terminated with WOCKY_STANZA_END

Returns :

a new stanza object

wocky_xmpp_stanza_get_type_info ()

void                wocky_xmpp_stanza_get_type_info     (WockyXmppStanza *stanza,
                                                         WockyStanzaType *type,
                                                         WockyStanzaSubType *sub_type);

stanza :

type :

sub_type :


wocky_xmpp_stanza_build_va ()

WockyXmppStanza *   wocky_xmpp_stanza_build_va          (WockyStanzaType type,
                                                         WockyStanzaSubType sub_type,
                                                         const gchar *from,
                                                         const gchar *to,
                                                         WockyBuildTag spec,
                                                         va_list ap);

type :

sub_type :

from :

to :

spec :

ap :

Returns :


wocky_xmpp_stanza_build_iq_result ()

WockyXmppStanza *   wocky_xmpp_stanza_build_iq_result   (WockyXmppStanza *iq,
                                                         WockyBuildTag spec,
                                                         ...);

iq :

spec :

... :

Returns :


wocky_xmpp_stanza_build_iq_error ()

WockyXmppStanza *   wocky_xmpp_stanza_build_iq_error    (WockyXmppStanza *iq,
                                                         WockyBuildTag spec,
                                                         ...);

iq :

spec :

... :

Returns :


wocky_xmpp_stanza_extract_errors ()

gboolean            wocky_xmpp_stanza_extract_errors    (WockyXmppStanza *stanza,
                                                         WockyXmppErrorType *type,
                                                         GError **core,
                                                         GError **specialized,
                                                         WockyXmppNode **specialized_node);

Given a message, iq or presence stanza with type='error', breaks it down into values describing the error. type and core are guaranteed to be set; specialized and specialized_node will be set if a recognised application-specific error is found, and the latter will be set to NULL if no application-specific error is found.

Any or all of the out parameters may be NULL to ignore the value. The value stored in specialized_node is borrowed from stanza, and is only valid as long as the latter is alive.

stanza :

a message/iq/presence stanza

type :

location at which to store the error type

core :

location at which to store an error in the domain WOCKY_XMPP_ERROR

specialized :

location at which to store an error in an application-specific domain, if one is found

specialized_node :

location at which to store the node representing an application-specific error, if one is found

Returns :

TRUE if the stanza had type='error'; FALSE otherwise

wocky_xmpp_stanza_extract_stream_error ()

gboolean            wocky_xmpp_stanza_extract_stream_error
                                                        (WockyXmppStanza *stanza,
                                                         GError **stream_error);

stanza :

a stanza

stream_error :

location at which to store an error in domain WOCKY_XMPP_STREAM_ERROR, if one is found.

Returns :

TRUE and sets stream_error if the stanza was indeed a stream error.