e-xml-hash-utils

e-xml-hash-utils

Types and Values

Description

Functions

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).

Parameters

doc

The xmlDoc to store in a hash table.

 

type

The value type to use as a key in the hash table.

 

Returns

The newly-created GHashTable representation of doc .

[transfer full][element-type utf8 utf8]


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().

Parameters

hash

The GHashTable to extract the XML from.

[element-type utf8 utf8]

type

The EXmlHashType used to store the XML

 

root_name

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.

Parameters

hash

the GHashTable to destroy.

[element-type utf8 utf8]

EXmlHashFunc ()

void
(*EXmlHashFunc) (const gchar *key,
                 const gchar *value,
                 gpointer user_data);

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.

Parameters

filename

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 .

Parameters

hash

the EXmlHash to add an entry to

 

key

the key to use for the entry

 

data

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.

Parameters

hash

the EXmlHash to remove an entry from

 

key

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 .

Parameters

hash

the EXmlHash to compare against

 

key

the key of the hash entry to compare with

 

compare_data

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 .

Parameters

hash

an EXmlHash

 

func

the EXmlHashFunc to execute on the data in hash .

[scope async]

user_data

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.

Parameters

hash

an EXmlHash

 

func

the EXmlHashFunc to execute on the data in hash .

[scope async]

user_data

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().

Parameters

hash

The EXmlHash to write.

 

e_xmlhash_destroy ()

void
e_xmlhash_destroy (EXmlHash *hash);

Frees the memory associated with hash .

Parameters

hash

The EXmlHash to destroy.

 

Types and Values

enum EXmlHashType

Members

E_XML_HASH_TYPE_OBJECT_UID

Use the object UID as the hash key.

 

E_XML_HASH_TYPE_PROPERTY

Use the property name as the hash key.

 

enum EXmlHashStatus

Members

E_XMLHASH_STATUS_SAME

The compared values are the same.

 

E_XMLHASH_STATUS_DIFFERENT

The compared values are different.

 

E_XMLHASH_STATUS_NOT_FOUND

The key to compare against was not found.

 

EXmlHash

typedef struct EXmlHash EXmlHash;

A hash table representation of an XML file.