wocky-xmpp-node

wocky-xmpp-node

Synopsis

                    WockyXmppNode;
gboolean            (*wocky_xmpp_node_each_child_func)  (WockyXmppNode *node,
                                                         gpointer user_data);
void                wocky_xmpp_node_each_attribute      (WockyXmppNode *node,
                                                         wocky_xmpp_node_each_attr_func func,
                                                         gpointer user_data);
void                wocky_xmpp_node_each_child          (WockyXmppNode *node,
                                                         wocky_xmpp_node_each_child_func func,
                                                         gpointer user_data);
const gchar *       wocky_xmpp_node_get_attribute       (WockyXmppNode *node,
                                                         const gchar *key);
const gchar *       wocky_xmpp_node_get_attribute_ns    (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *ns);
void                wocky_xmpp_node_set_attribute       (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value);
void                wocky_xmpp_node_set_attribute_ns    (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value,
                                                         const gchar *ns);
void                wocky_xmpp_node_set_attribute_n     (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value,
                                                         gsize value_size);
void                wocky_xmpp_node_set_attribute_n_ns  (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value,
                                                         gsize value_size,
                                                         const gchar *ns);
const gchar *       wocky_xmpp_node_attribute_ns_get_prefix_from_urn
                                                        (const gchar *urn);
const gchar *       wocky_xmpp_node_attribute_ns_get_prefix_from_quark
                                                        (GQuark ns);
void                wocky_xmpp_node_attribute_ns_set_prefix
                                                        (GQuark ns,
                                                         const gchar *prefix);
WockyXmppNode *     wocky_xmpp_node_get_child           (WockyXmppNode *node,
                                                         const gchar *name);
WockyXmppNode *     wocky_xmpp_node_get_child_ns        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const gchar *ns);
WockyXmppNode *     wocky_xmpp_node_get_first_child     (WockyXmppNode *node);
const gchar *       wocky_xmpp_node_unpack_error        (WockyXmppNode *node,
                                                         const gchar **type,
                                                         WockyXmppNode **text,
                                                         WockyXmppNode **orig,
                                                         WockyXmppNode **extra);
WockyXmppNode *     wocky_xmpp_node_add_child           (WockyXmppNode *node,
                                                         const gchar *name);
WockyXmppNode *     wocky_xmpp_node_add_child_ns        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const gchar *ns);
WockyXmppNode *     wocky_xmpp_node_add_child_with_content
                                                        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const char *content);
WockyXmppNode *     wocky_xmpp_node_add_child_with_content_ns
                                                        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const gchar *content,
                                                         const gchar *ns);
void                wocky_xmpp_node_set_ns              (WockyXmppNode *node,
                                                         const gchar *ns);
const gchar *       wocky_xmpp_node_get_ns              (WockyXmppNode *node);
const gchar *       wocky_xmpp_node_get_language        (WockyXmppNode *node);
void                wocky_xmpp_node_set_language        (WockyXmppNode *node,
                                                         const gchar *lang);
void                wocky_xmpp_node_set_language_n      (WockyXmppNode *node,
                                                         const gchar *lang,
                                                         gsize lang_size);
void                wocky_xmpp_node_set_content         (WockyXmppNode *node,
                                                         const gchar *content);
void                wocky_xmpp_node_append_content      (WockyXmppNode *node,
                                                         const gchar *content);
void                wocky_xmpp_node_append_content_n    (WockyXmppNode *node,
                                                         const gchar *content,
                                                         gsize size);
gchar *             wocky_xmpp_node_to_string           (WockyXmppNode *node);
WockyXmppNode *     wocky_xmpp_node_new                 (const char *name);
void                wocky_xmpp_node_free                (WockyXmppNode *node);
gboolean            wocky_xmpp_node_equal               (WockyXmppNode *node0,
                                                         WockyXmppNode *node1);
gboolean            wocky_xmpp_node_is_superset         (WockyXmppNode *node,
                                                         WockyXmppNode *pattern);
void                wocky_xmpp_node_init                (void);
void                wocky_xmpp_node_deinit              (void);

Description

Details

WockyXmppNode

typedef struct {
  gchar *name;
  gchar *content;

  /* Private */
  gchar *language;
  GQuark ns;
  GSList *attributes;
  GSList *children;
} WockyXmppNode;


wocky_xmpp_node_each_child_func ()

gboolean            (*wocky_xmpp_node_each_child_func)  (WockyXmppNode *node,
                                                         gpointer user_data);

node :

user_data :

Returns :


wocky_xmpp_node_each_attribute ()

void                wocky_xmpp_node_each_attribute      (WockyXmppNode *node,
                                                         wocky_xmpp_node_each_attr_func func,
                                                         gpointer user_data);

node :

func :

user_data :


wocky_xmpp_node_each_child ()

void                wocky_xmpp_node_each_child          (WockyXmppNode *node,
                                                         wocky_xmpp_node_each_child_func func,
                                                         gpointer user_data);

node :

func :

user_data :


wocky_xmpp_node_get_attribute ()

const gchar *       wocky_xmpp_node_get_attribute       (WockyXmppNode *node,
                                                         const gchar *key);

node :

key :

Returns :


wocky_xmpp_node_get_attribute_ns ()

const gchar *       wocky_xmpp_node_get_attribute_ns    (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *ns);

node :

key :

ns :

Returns :


wocky_xmpp_node_set_attribute ()

void                wocky_xmpp_node_set_attribute       (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value);

node :

key :

value :


wocky_xmpp_node_set_attribute_ns ()

void                wocky_xmpp_node_set_attribute_ns    (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value,
                                                         const gchar *ns);

node :

key :

value :

ns :


wocky_xmpp_node_set_attribute_n ()

void                wocky_xmpp_node_set_attribute_n     (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value,
                                                         gsize value_size);

node :

key :

value :

value_size :


wocky_xmpp_node_set_attribute_n_ns ()

void                wocky_xmpp_node_set_attribute_n_ns  (WockyXmppNode *node,
                                                         const gchar *key,
                                                         const gchar *value,
                                                         gsize value_size,
                                                         const gchar *ns);

node :

key :

value :

value_size :

ns :


wocky_xmpp_node_attribute_ns_get_prefix_from_urn ()

const gchar *       wocky_xmpp_node_attribute_ns_get_prefix_from_urn
                                                        (const gchar *urn);

urn :

Returns :


wocky_xmpp_node_attribute_ns_get_prefix_from_quark ()

const gchar *       wocky_xmpp_node_attribute_ns_get_prefix_from_quark
                                                        (GQuark ns);

ns :

Returns :


wocky_xmpp_node_attribute_ns_set_prefix ()

void                wocky_xmpp_node_attribute_ns_set_prefix
                                                        (GQuark ns,
                                                         const gchar *prefix);

ns :

prefix :


wocky_xmpp_node_get_child ()

WockyXmppNode *     wocky_xmpp_node_get_child           (WockyXmppNode *node,
                                                         const gchar *name);

node :

name :

Returns :


wocky_xmpp_node_get_child_ns ()

WockyXmppNode *     wocky_xmpp_node_get_child_ns        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const gchar *ns);

node :

name :

ns :

Returns :


wocky_xmpp_node_get_first_child ()

WockyXmppNode *     wocky_xmpp_node_get_first_child     (WockyXmppNode *node);

node :

Returns :


wocky_xmpp_node_unpack_error ()

const gchar *       wocky_xmpp_node_unpack_error        (WockyXmppNode *node,
                                                         const gchar **type,
                                                         WockyXmppNode **text,
                                                         WockyXmppNode **orig,
                                                         WockyXmppNode **extra);

node: a WockyXmppNode type: gchar ** into which to write the XMPP Stanza error type text: WockyXmppNode ** to hold the node containing the error description orig: WockyXmppNode ** to hold the original XMPP Stanza that triggered the error: XMPP does not require this to be provided in the error extra: WockyXmppNode ** to hold any extra domain-specific XML tags for the error received.

Given an XMPP Stanza error WockyXmppNode see RFC 3920) this function extracts useful error info.

The above parameters are all optional, pass NULL to ignore them.

The above data are all optional in XMPP, except for type, which the XMPP spec requires in all stanza errors. See RFC 3920 [9.3.2].

None of the above parameters need be freed, they are owned by the parent WockyXmppNode node.

node :

type :

text :

orig :

extra :

Returns :

a const gchar * indicating the error condition

wocky_xmpp_node_add_child ()

WockyXmppNode *     wocky_xmpp_node_add_child           (WockyXmppNode *node,
                                                         const gchar *name);

node :

name :

Returns :


wocky_xmpp_node_add_child_ns ()

WockyXmppNode *     wocky_xmpp_node_add_child_ns        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const gchar *ns);

node :

name :

ns :

Returns :


wocky_xmpp_node_add_child_with_content ()

WockyXmppNode *     wocky_xmpp_node_add_child_with_content
                                                        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const char *content);

node :

name :

content :

Returns :


wocky_xmpp_node_add_child_with_content_ns ()

WockyXmppNode *     wocky_xmpp_node_add_child_with_content_ns
                                                        (WockyXmppNode *node,
                                                         const gchar *name,
                                                         const gchar *content,
                                                         const gchar *ns);

node :

name :

content :

ns :

Returns :


wocky_xmpp_node_set_ns ()

void                wocky_xmpp_node_set_ns              (WockyXmppNode *node,
                                                         const gchar *ns);

node :

ns :


wocky_xmpp_node_get_ns ()

const gchar *       wocky_xmpp_node_get_ns              (WockyXmppNode *node);

node :

Returns :


wocky_xmpp_node_get_language ()

const gchar *       wocky_xmpp_node_get_language        (WockyXmppNode *node);

node :

Returns :


wocky_xmpp_node_set_language ()

void                wocky_xmpp_node_set_language        (WockyXmppNode *node,
                                                         const gchar *lang);

node :

lang :


wocky_xmpp_node_set_language_n ()

void                wocky_xmpp_node_set_language_n      (WockyXmppNode *node,
                                                         const gchar *lang,
                                                         gsize lang_size);

node :

lang :

lang_size :


wocky_xmpp_node_set_content ()

void                wocky_xmpp_node_set_content         (WockyXmppNode *node,
                                                         const gchar *content);

node :

content :


wocky_xmpp_node_append_content ()

void                wocky_xmpp_node_append_content      (WockyXmppNode *node,
                                                         const gchar *content);

node :

content :


wocky_xmpp_node_append_content_n ()

void                wocky_xmpp_node_append_content_n    (WockyXmppNode *node,
                                                         const gchar *content,
                                                         gsize size);

node :

content :

size :


wocky_xmpp_node_to_string ()

gchar *             wocky_xmpp_node_to_string           (WockyXmppNode *node);

node :

Returns :


wocky_xmpp_node_new ()

WockyXmppNode *     wocky_xmpp_node_new                 (const char *name);

name :

Returns :


wocky_xmpp_node_free ()

void                wocky_xmpp_node_free                (WockyXmppNode *node);

node :


wocky_xmpp_node_equal ()

gboolean            wocky_xmpp_node_equal               (WockyXmppNode *node0,
                                                         WockyXmppNode *node1);

node0 :

node1 :

Returns :


wocky_xmpp_node_is_superset ()

gboolean            wocky_xmpp_node_is_superset         (WockyXmppNode *node,
                                                         WockyXmppNode *pattern);

node :

the WockyXmppNode to test

pattern :

Returns :

TRUE if node is a superset of subset.

wocky_xmpp_node_init ()

void                wocky_xmpp_node_init                (void);


wocky_xmpp_node_deinit ()

void                wocky_xmpp_node_deinit              (void);