Evolution-Data-Server Manual: Utilities (libedataserver) | ||||
---|---|---|---|---|
Top | Description |
Synopsis
enum EXmlHashType; GHashTable * e_xml_to_hash (xmlDoc *doc
,EXmlHashType type
); xmlDoc * e_xml_from_hash (GHashTable *hash
,EXmlHashType type
,const gchar *root_name
); void e_xml_destroy_hash (GHashTable *hash
); enum EXmlHashStatus; void (*EXmlHashFunc) (const gchar *key
,const gchar *value
,gpointer user_data
); gboolean (*EXmlHashRemoveFunc) (const gchar *key
,const gchar *value
,gpointer user_data
); typedef EXmlHash; EXmlHash * e_xmlhash_new (const gchar *filename
); void e_xmlhash_add (EXmlHash *hash
,const gchar *key
,const gchar *data
); void e_xmlhash_remove (EXmlHash *hash
,const gchar *key
); EXmlHashStatus e_xmlhash_compare (EXmlHash *hash
,const gchar *key
,const gchar *compare_data
); void e_xmlhash_foreach_key (EXmlHash *hash
,EXmlHashFunc func
,gpointer user_data
); void e_xmlhash_foreach_key_remove (EXmlHash *hash
,EXmlHashRemoveFunc func
,gpointer user_data
); void e_xmlhash_write (EXmlHash *hash
); void e_xmlhash_destroy (EXmlHash *hash
);
Details
enum EXmlHashType
typedef enum { E_XML_HASH_TYPE_OBJECT_UID, E_XML_HASH_TYPE_PROPERTY } EXmlHashType;
e_xml_to_hash ()
GHashTable * e_xml_to_hash (xmlDoc *doc
,EXmlHashType type
);
Creates a GHashTable representation of the xmlDoc doc
.
If type
is * E_XML_HASH_TYPE_PROPERTY
, all XML nodes will be
indexed in the GHashTable by name. If type
is
E_XML_HASH_TYPE_OBJECT_UID
, then XML objects will be indexed in
the hash by their UID (other nodes will still be indexed by name).
|
The xmlDoc to store in a hash table. |
|
The value type to use as a key in the hash table. |
Returns : |
The newly-created GHashTable representation
of doc . [transfer full]
|
e_xml_from_hash ()
xmlDoc * e_xml_from_hash (GHashTable *hash
,EXmlHashType type
,const gchar *root_name
);
Uses the key/value pair representation of an XML structure in hash
to build an equivalent xmlDoc. This is the reverse of e_xml_to_hash()
.
|
The GHashTable to extract the XML from |
|
The EXmlHashType used to store the XML |
|
The name to call the new xmlDoc |
Returns : |
the xmlDoc created from the data in hash
|
e_xml_destroy_hash ()
void e_xml_destroy_hash (GHashTable *hash
);
Frees the memory used by hash
and its contents.
|
the GHashTable to destroy |
enum EXmlHashStatus
typedef enum { E_XMLHASH_STATUS_SAME, E_XMLHASH_STATUS_DIFFERENT, E_XMLHASH_STATUS_NOT_FOUND } EXmlHashStatus;
EXmlHashRemoveFunc ()
gboolean (*EXmlHashRemoveFunc) (const gchar *key
,const gchar *value
,gpointer user_data
);
e_xmlhash_new ()
EXmlHash * e_xmlhash_new (const gchar *filename
);
Creates a new EXmlHash from the file filename
. If filename
does
not already exist, an empty EXmlHash will be created.
|
the name of an XML file |
Returns : |
The new EXmlHash structure, or NULL if unable to parse
filename . |
e_xmlhash_add ()
void e_xmlhash_add (EXmlHash *hash
,const gchar *key
,const gchar *data
);
Adds a new key/value pair to the EXmlHash hash
.
|
the EXmlHash to add an entry to |
|
the key to use for the entry |
|
the value of the new entry |
e_xmlhash_remove ()
void e_xmlhash_remove (EXmlHash *hash
,const gchar *key
);
Remove the entry in hash
with key equal to key
, if it exists.
|
the EXmlHash to remove an entry from |
|
the key of the entry to remove |
e_xmlhash_compare ()
EXmlHashStatus e_xmlhash_compare (EXmlHash *hash
,const gchar *key
,const gchar *compare_data
);
Compares the value with key equal to key
in hash
against
compare_data
.
|
the EXmlHash to compare against |
|
the key of the hash entry to compare with |
|
the data to compare against the hash entry |
Returns : |
E_XMLHASH_STATUS_SAME if the value and compare_data are
equal,E_XMLHASH_STATUS_DIFFERENT if they are different, or
E_XMLHASH_STATUS_NOT_FOUND if there is no entry in hash with
its key equal to key . |
e_xmlhash_foreach_key ()
void e_xmlhash_foreach_key (EXmlHash *hash
,EXmlHashFunc func
,gpointer user_data
);
Executes func
against each key/value pair in hash
.
|
an EXmlHash |
|
the EXmlHashFunc to execute on the data in hash . [scope async]
|
|
the data to pass to func
|
e_xmlhash_foreach_key_remove ()
void e_xmlhash_foreach_key_remove (EXmlHash *hash
,EXmlHashRemoveFunc func
,gpointer user_data
);
Calls g_hash_table_foreach_remove()
on hash
's internal hash
table. See g_hash_table_foreach_remove()
for details.
|
an EXmlHash |
|
the EXmlHashFunc to execute on the data in hash . [scope async]
|
|
the data to pass to func
|
e_xmlhash_write ()
void e_xmlhash_write (EXmlHash *hash
);
Writes the XML represented by hash
to the file originally passed
to e_xmlhash_new()
.
|
The EXmlHash to write. |