hash

Name

hash -- 

Synopsis



struct      xmlHashTable;
typedef     xmlHashTablePtr;
void        (*xmlHashDeallocator)           (void *payload,
                                             xmlChar *name);
void*       (*xmlHashCopier)                (void *payload,
                                             xmlChar *name);
void        (*xmlHashScanner)               (void *payload,
                                             void *data,
                                             xmlChar *name);
void        (*xmlHashScannerFull)           (void *payload,
                                             void *data,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3);
xmlHashTablePtr xmlHashCreate               (int size);
void        xmlHashFree                     (xmlHashTablePtr table,
                                             xmlHashDeallocator f);
int         xmlHashAddEntry                 (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             void *userdata);
int         xmlHashUpdateEntry              (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             void *userdata,
                                             xmlHashDeallocator f);
int         xmlHashAddEntry2                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             void *userdata);
int         xmlHashUpdateEntry2             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             void *userdata,
                                             xmlHashDeallocator f);
int         xmlHashAddEntry3                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             void *userdata);
int         xmlHashUpdateEntry3             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             void *userdata,
                                             xmlHashDeallocator f);
int         xmlHashRemoveEntry              (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             xmlHashDeallocator f);
int         xmlHashRemoveEntry2             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             xmlHashDeallocator f);
int         xmlHashRemoveEntry3             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashDeallocator f);
void*       xmlHashLookup                   (xmlHashTablePtr table,
                                             const xmlChar *name);
void*       xmlHashLookup2                  (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2);
void*       xmlHashLookup3                  (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3);
xmlHashTablePtr xmlHashCopy                 (xmlHashTablePtr table,
                                             xmlHashCopier f);
int         xmlHashSize                     (xmlHashTablePtr table);
void        xmlHashScan                     (xmlHashTablePtr table,
                                             xmlHashScanner f,
                                             void *data);
void        xmlHashScan3                    (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashScanner f,
                                             void *data);
void        xmlHashScanFull                 (xmlHashTablePtr table,
                                             xmlHashScannerFull f,
                                             void *data);
void        xmlHashScanFull3                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashScannerFull f,
                                             void *data);

Description

Details

struct xmlHashTable

struct xmlHashTable;


xmlHashTablePtr

typedef xmlHashTable *xmlHashTablePtr;


xmlHashDeallocator ()

void        (*xmlHashDeallocator)           (void *payload,
                                             xmlChar *name);

Callback to free data from a hash.


xmlHashCopier ()

void*       (*xmlHashCopier)                (void *payload,
                                             xmlChar *name);

Callback to copy data from a hash.


xmlHashScanner ()

void        (*xmlHashScanner)               (void *payload,
                                             void *data,
                                             xmlChar *name);

Callback when scanning data in a hash with the simple scanner.


xmlHashScannerFull ()

void        (*xmlHashScannerFull)           (void *payload,
                                             void *data,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3);

Callback when scanning data in a hash with the full scanner.


xmlHashCreate ()

xmlHashTablePtr xmlHashCreate               (int size);

Create a new xmlHashTablePtr.


xmlHashFree ()

void        xmlHashFree                     (xmlHashTablePtr table,
                                             xmlHashDeallocator f);

Free the hash table and its contents. The userdata is deallocated with f if provided.


xmlHashAddEntry ()

int         xmlHashAddEntry                 (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             void *userdata);

Add the userdata to the hash table. This can later be retrieved by using the name. Duplicate names generate errors.


xmlHashUpdateEntry ()

int         xmlHashUpdateEntry              (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             void *userdata,
                                             xmlHashDeallocator f);

Add the userdata to the hash table. This can later be retrieved by using the name. Existing entry for this name will be removed and freed with f if found.


xmlHashAddEntry2 ()

int         xmlHashAddEntry2                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             void *userdata);

Add the userdata to the hash table. This can later be retrieved by using the (name, name2) tuple. Duplicate tuples generate errors.


xmlHashUpdateEntry2 ()

int         xmlHashUpdateEntry2             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             void *userdata,
                                             xmlHashDeallocator f);

Add the userdata to the hash table. This can later be retrieved by using the (name, name2) tuple. Existing entry for this tuple will be removed and freed with f if found.


xmlHashAddEntry3 ()

int         xmlHashAddEntry3                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             void *userdata);

Add the userdata to the hash table. This can later be retrieved by using the tuple (name, name2, name3). Duplicate entries generate errors.


xmlHashUpdateEntry3 ()

int         xmlHashUpdateEntry3             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             void *userdata,
                                             xmlHashDeallocator f);

Add the userdata to the hash table. This can later be retrieved by using the tuple (name, name2, name3). Existing entry for this tuple will be removed and freed with f if found.


xmlHashRemoveEntry ()

int         xmlHashRemoveEntry              (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             xmlHashDeallocator f);

Find the userdata specified by the name and remove it from the hash table. Existing userdata for this tuple will be removed and freed with f.


xmlHashRemoveEntry2 ()

int         xmlHashRemoveEntry2             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             xmlHashDeallocator f);

Find the userdata specified by the (name, name2) tuple and remove it from the hash table. Existing userdata for this tuple will be removed and freed with f.


xmlHashRemoveEntry3 ()

int         xmlHashRemoveEntry3             (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashDeallocator f);

Find the userdata specified by the (name, name2, name3) tuple and remove it from the hash table. Existing userdata for this tuple will be removed and freed with f.


xmlHashLookup ()

void*       xmlHashLookup                   (xmlHashTablePtr table,
                                             const xmlChar *name);

Find the userdata specified by the name.


xmlHashLookup2 ()

void*       xmlHashLookup2                  (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2);

Find the userdata specified by the (name, name2) tuple.


xmlHashLookup3 ()

void*       xmlHashLookup3                  (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3);

Find the userdata specified by the (name, name2, name3) tuple.


xmlHashCopy ()

xmlHashTablePtr xmlHashCopy                 (xmlHashTablePtr table,
                                             xmlHashCopier f);

Scan the hash table and applied f to each value.


xmlHashSize ()

int         xmlHashSize                     (xmlHashTablePtr table);

Query the number of elements installed in the hash table.


xmlHashScan ()

void        xmlHashScan                     (xmlHashTablePtr table,
                                             xmlHashScanner f,
                                             void *data);

Scan the hash table and applied f to each value.


xmlHashScan3 ()

void        xmlHashScan3                    (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashScanner f,
                                             void *data);

Scan the hash table and applied f to each value matching (name, name2, name3) tuple. If one of the names is null, the comparison is considered to match.


xmlHashScanFull ()

void        xmlHashScanFull                 (xmlHashTablePtr table,
                                             xmlHashScannerFull f,
                                             void *data);

Scan the hash table and applied f to each value.


xmlHashScanFull3 ()

void        xmlHashScanFull3                (xmlHashTablePtr table,
                                             const xmlChar *name,
                                             const xmlChar *name2,
                                             const xmlChar *name3,
                                             xmlHashScannerFull f,
                                             void *data);

Scan the hash table and applied f to each value matching (name, name2, name3) tuple. If one of the names is null, the comparison is considered to match.