deps/src/libxml2-2.9.1/doc/html/libxml-hash.html
| |
|
|
|
|
|
|
|
|
|
| API Menu | |
|
| API Indexes | |
|
| Related links | |
|
|
|
|
|
|
| | globals | | API documentation | | The XML C parser and toolkit of Gnome | list | |
This module implements the hash table support used in various places in the library.
#define[XML\_CAST\_FPTR](#XML_CAST_FPTR)
Structure[xmlHashTable](#xmlHashTable)
struct _xmlHashTable
The content of this structure is not made public by the API.
Typedef[xmlHashTable](libxml-hash.html#xmlHashTable)*xmlHashTablePtr
int[xmlHashAddEntry](#xmlHashAddEntry)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
void * userdata)
int[xmlHashAddEntry2](#xmlHashAddEntry2)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
void * userdata)
int[xmlHashAddEntry3](#xmlHashAddEntry3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
void * userdata)
Function type:[xmlHashCopier](#xmlHashCopier)void *[xmlHashCopier](#xmlHashCopier)(void * payload,
[xmlChar](libxml-xmlstring.html#xmlChar)* name)
[xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)[xmlHashCopy](#xmlHashCopy)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashCopier](libxml-hash.html#xmlHashCopier)f)
[xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)[xmlHashCreate](#xmlHashCreate)(int size)
[xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)[xmlHashCreateDict](#xmlHashCreateDict)(int size,
[xmlDictPtr](libxml-dict.html#xmlDictPtr)dict)
Function type:[xmlHashDeallocator](#xmlHashDeallocator)void[xmlHashDeallocator](#xmlHashDeallocator)(void * payload,
[xmlChar](libxml-xmlstring.html#xmlChar)* name)
void[xmlHashFree](#xmlHashFree)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
void *[xmlHashLookup](#xmlHashLookup)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name)
void *[xmlHashLookup2](#xmlHashLookup2)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2)
void *[xmlHashLookup3](#xmlHashLookup3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3)
void *[xmlHashQLookup](#xmlHashQLookup)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name)
void *[xmlHashQLookup2](#xmlHashQLookup2)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2)
void *[xmlHashQLookup3](#xmlHashQLookup3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix3,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3)
int[xmlHashRemoveEntry](#xmlHashRemoveEntry)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
int[xmlHashRemoveEntry2](#xmlHashRemoveEntry2)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
int[xmlHashRemoveEntry3](#xmlHashRemoveEntry3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
void[xmlHashScan](#xmlHashScan)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashScanner](libxml-hash.html#xmlHashScanner)f,
void * data)
void[xmlHashScan3](#xmlHashScan3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
[xmlHashScanner](libxml-hash.html#xmlHashScanner)f,
void * data)
void[xmlHashScanFull](#xmlHashScanFull)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashScannerFull](libxml-hash.html#xmlHashScannerFull)f,
void * data)
void[xmlHashScanFull3](#xmlHashScanFull3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
[xmlHashScannerFull](libxml-hash.html#xmlHashScannerFull)f,
void * data)
Function type:[xmlHashScanner](#xmlHashScanner)void[xmlHashScanner](#xmlHashScanner)(void * payload,
void * data,
[xmlChar](libxml-xmlstring.html#xmlChar)* name)
Function type:[xmlHashScannerFull](#xmlHashScannerFull)void[xmlHashScannerFull](#xmlHashScannerFull)(void * payload,
void * data,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3)
int[xmlHashSize](#xmlHashSize)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table)
int[xmlHashUpdateEntry](#xmlHashUpdateEntry)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
void * userdata,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
int[xmlHashUpdateEntry2](#xmlHashUpdateEntry2)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
void * userdata,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
int[xmlHashUpdateEntry3](#xmlHashUpdateEntry3)([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
void * userdata,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
#define XML_CAST_FPTR
Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now
Structure xmlHashTable
struct _xmlHashTable {
The content of this structure is not made public by the API.
}
int xmlHashAddEntry ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
void * userdata)
Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.
| table: | the hash table | | name: | the name of the userdata | | userdata: | a pointer to the userdata | | Returns: | 0 the addition succeeded and -1 in case of error. |
int xmlHashAddEntry2 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#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.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | userdata: | a pointer to the userdata | | Returns: | 0 the addition succeeded and -1 in case of error. |
int xmlHashAddEntry3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#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.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | name3: | a third name of the userdata | | userdata: | a pointer to the userdata | | Returns: | 0 the addition succeeded and -1 in case of error. |
Function type: xmlHashCopier
void * xmlHashCopier (void * payload,
[xmlChar](libxml-xmlstring.html#xmlChar)* name)
Callback to copy data from a hash.
| payload: | the data in the hash | | name: | the name associated | | Returns: | a copy of the data or NULL in case of error. |
[xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)xmlHashCopy ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashCopier](libxml-hash.html#xmlHashCopier)f)
Scan the hash @table and applied @f to each value.
| table: | the hash table | | f: | the copier function for items in the hash | | Returns: | the new table or NULL in case of error. |
[xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)xmlHashCreate (int size)
Create a new xmlHashTablePtr.
| size: | the size of the hash table | | Returns: | the newly created object, or NULL if an error occured. |
[xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)xmlHashCreateDict (int size,
[xmlDictPtr](libxml-dict.html#xmlDictPtr)dict)
Create a new xmlHashTablePtr which will use @dict as the internal dictionary
| size: | the size of the hash table | | dict: | a dictionary to use for the hash | | Returns: | the newly created object, or NULL if an error occured. |
Function type: xmlHashDeallocator
void xmlHashDeallocator (void * payload,
[xmlChar](libxml-xmlstring.html#xmlChar)* name)
Callback to free data from a hash.
| payload: | the data in the hash | | name: | the name associated |
void xmlHashFree ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashDeallocator](libxml-hash.html#xmlHashDeallocator)f)
Free the hash @table and its contents. The userdata is deallocated with @f if provided.
| table: | the hash table | | f: | the deallocator function for items in the hash |
void * xmlHashLookup ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name)
Find the userdata specified by the @name.
| table: | the hash table | | name: | the name of the userdata | | Returns: | the pointer to the userdata |
void * xmlHashLookup2 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2)
Find the userdata specified by the (@name, @name2) tuple.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | Returns: | the pointer to the userdata |
void * xmlHashLookup3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3)
Find the userdata specified by the (@name, @name2, @name3) tuple.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | name3: | a third name of the userdata | | Returns: | the a pointer to the userdata |
void * xmlHashQLookup ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name)
Find the userdata specified by the QName @prefix:@name/@name.
| table: | the hash table | | prefix: | the prefix of the userdata | | name: | the name of the userdata | | Returns: | the pointer to the userdata |
void * xmlHashQLookup2 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2)
Find the userdata specified by the QNames tuple
| table: | the hash table | | prefix: | the prefix of the userdata | | name: | the name of the userdata | | prefix2: | the second prefix of the userdata | | name2: | a second name of the userdata | | Returns: | the pointer to the userdata |
void * xmlHashQLookup3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* prefix3,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3)
Find the userdata specified by the (@name, @name2, @name3) tuple.
| table: | the hash table | | prefix: | the prefix of the userdata | | name: | the name of the userdata | | prefix2: | the second prefix of the userdata | | name2: | a second name of the userdata | | prefix3: | the third prefix of the userdata | | name3: | a third name of the userdata | | Returns: | the a pointer to the userdata |
int xmlHashRemoveEntry ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
[xmlHashDeallocator](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata | | f: | the deallocator function for removed item (if any) | | Returns: | 0 if the removal succeeded and -1 in case of error or not found. |
int xmlHashRemoveEntry2 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
[xmlHashDeallocator](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | f: | the deallocator function for removed item (if any) | | Returns: | 0 if the removal succeeded and -1 in case of error or not found. |
int xmlHashRemoveEntry3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
[xmlHashDeallocator](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | name3: | a third name of the userdata | | f: | the deallocator function for removed item (if any) | | Returns: | 0 if the removal succeeded and -1 in case of error or not found. |
void xmlHashScan ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashScanner](libxml-hash.html#xmlHashScanner)f,
void * data)
Scan the hash @table and applied @f to each value.
| table: | the hash table | | f: | the scanner function for items in the hash | | data: | extra data passed to f |
void xmlHashScan3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
[xmlHashScanner](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata or NULL | | name2: | a second name of the userdata or NULL | | name3: | a third name of the userdata or NULL | | f: | the scanner function for items in the hash | | data: | extra data passed to f |
void xmlHashScanFull ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
[xmlHashScannerFull](libxml-hash.html#xmlHashScannerFull)f,
void * data)
Scan the hash @table and applied @f to each value.
| table: | the hash table | | f: | the scanner function for items in the hash | | data: | extra data passed to f |
void xmlHashScanFull3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
[xmlHashScannerFull](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata or NULL | | name2: | a second name of the userdata or NULL | | name3: | a third name of the userdata or NULL | | f: | the scanner function for items in the hash | | data: | extra data passed to f |
Function type: xmlHashScanner
void xmlHashScanner (void * payload,
void * data,
[xmlChar](libxml-xmlstring.html#xmlChar)* name)
Callback when scanning data in a hash with the simple scanner.
| payload: | the data in the hash | | data: | extra scannner data | | name: | the name associated |
Function type: xmlHashScannerFull
void xmlHashScannerFull (void * payload,
void * data,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3)
Callback when scanning data in a hash with the full scanner.
| payload: | the data in the hash | | data: | extra scannner data | | name: | the name associated | | name2: | the second name associated | | name3: | the third name associated |
int xmlHashSize ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table)
Query the number of elements installed in the hash @table.
| table: | the hash table | | Returns: | the number of elements in the hash table or -1 in case of error |
int xmlHashUpdateEntry ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
void * userdata,
[xmlHashDeallocator](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata | | userdata: | a pointer to the userdata | | f: | the deallocator function for replaced item (if any) | | Returns: | 0 the addition succeeded and -1 in case of error. |
int xmlHashUpdateEntry2 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
void * userdata,
[xmlHashDeallocator](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | userdata: | a pointer to the userdata | | f: | the deallocator function for replaced item (if any) | | Returns: | 0 the addition succeeded and -1 in case of error. |
int xmlHashUpdateEntry3 ([xmlHashTablePtr](libxml-hash.html#xmlHashTablePtr)table,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name2,
const[xmlChar](libxml-xmlstring.html#xmlChar)* name3,
void * userdata,
[xmlHashDeallocator](libxml-hash.html#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.
| table: | the hash table | | name: | the name of the userdata | | name2: | a second name of the userdata | | name3: | a third name of the userdata | | userdata: | a pointer to the userdata | | f: | the deallocator function for replaced item (if any) | | Returns: | 0 the addition succeeded and -1 in case of error. |
|
|
|
|
|