|  |  |  | Evolution-Data-Server Manual: Utilities (libedataserver) |  | 
|---|---|---|---|---|
| Top | Description | ||||
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);
typedef enum {
	E_XML_HASH_TYPE_OBJECT_UID,
	E_XML_HASH_TYPE_PROPERTY
} EXmlHashType;
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] | 
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 | 
void                e_xml_destroy_hash                  (GHashTable *hash);
Frees the memory used by hash and its contents.
| 
 | the GHashTable to destroy | 
typedef enum {
	E_XMLHASH_STATUS_SAME,
	E_XMLHASH_STATUS_DIFFERENT,
	E_XMLHASH_STATUS_NOT_FOUND
} EXmlHashStatus;
gboolean (*EXmlHashRemoveFunc) (const gchar *key,const gchar *value,gpointer user_data);
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 NULLif unable to parsefilename. | 
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 | 
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 | 
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_dataare
equal,E_XMLHASH_STATUS_DIFFERENT if they are different, or
E_XMLHASH_STATUS_NOT_FOUND if there is no entry inhashwith
its key equal tokey. | 
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 | 
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 | 
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. |