Blame doc/html/libxml-hash.html

Packit Service a31ea6
Packit Service a31ea6
Packit Service a31ea6
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
Packit Service a31ea6
TD {font-family: Verdana,Arial,Helvetica}
Packit Service a31ea6
BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
Packit Service a31ea6
H1 {font-family: Verdana,Arial,Helvetica}
Packit Service a31ea6
H2 {font-family: Verdana,Arial,Helvetica}
Packit Service a31ea6
H3 {font-family: Verdana,Arial,Helvetica}
Packit Service a31ea6
A:link, A:visited, A:active { text-decoration: underline }
Packit Service a31ea6
</style><style type="text/css">
Packit Service a31ea6
      div.deprecated pre.programlisting {border-style: double;border-color:red}
Packit Service a31ea6
      pre.programlisting {border-style: double;background: #EECFA1}
Packit Service a31ea6
    </style><title>Module hash from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
Made with Libxml2 Logo

Module hash from libxml2

<center>API Menu</center>
<form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form>
<center>API Indexes</center>
<center>Related links</center>

This module implements the hash table support used in various places in the library.

Table of Contents

#define XML_CAST_FPTR
Structure xmlHashTable
struct _xmlHashTable
Packit Service a31ea6
The content of this structure is not made public by the API.
Packit Service a31ea6
Typedef xmlHashTable * xmlHashTablePtr
Packit Service a31ea6
int	xmlHashAddEntry			(xmlHashTablePtr table, 
const xmlChar * name,
void * userdata)
Packit Service a31ea6
int	xmlHashAddEntry2		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
void * userdata)
Packit Service a31ea6
int	xmlHashAddEntry3		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
void * userdata)
Packit Service a31ea6
Function type: xmlHashCopier
Packit Service a31ea6
void *	xmlHashCopier			(void * payload, 
xmlChar * name)
Packit Service a31ea6
Packit Service a31ea6
xmlHashTablePtr	xmlHashCopy		(xmlHashTablePtr table, 
xmlHashCopier f)
Packit Service a31ea6
xmlHashTablePtr	xmlHashCreate		(int size)
Packit Service a31ea6
xmlHashTablePtr	xmlHashCreateDict	(int size, 
xmlDictPtr dict)
Packit Service a31ea6
Function type: xmlHashDeallocator
Packit Service a31ea6
void	xmlHashDeallocator		(void * payload, 
xmlChar * name)
Packit Service a31ea6
Packit Service a31ea6
void	xmlHashFree			(xmlHashTablePtr table, 
xmlHashDeallocator f)
Packit Service a31ea6
void *	xmlHashLookup			(xmlHashTablePtr table, 
const xmlChar * name)
Packit Service a31ea6
void *	xmlHashLookup2			(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2)
Packit Service a31ea6
void *	xmlHashLookup3			(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3)
Packit Service a31ea6
void *	xmlHashQLookup			(xmlHashTablePtr table, 
const xmlChar * prefix,
const xmlChar * name)
Packit Service a31ea6
void *	xmlHashQLookup2			(xmlHashTablePtr table, 
const xmlChar * prefix,
const xmlChar * name,
const xmlChar * prefix2,
const xmlChar * name2)
Packit Service a31ea6
void *	xmlHashQLookup3			(xmlHashTablePtr table, 
const xmlChar * prefix,
const xmlChar * name,
const xmlChar * prefix2,
const xmlChar * name2,
const xmlChar * prefix3,
const xmlChar * name3)
Packit Service a31ea6
int	xmlHashRemoveEntry		(xmlHashTablePtr table, 
const xmlChar * name,
xmlHashDeallocator f)
Packit Service a31ea6
int	xmlHashRemoveEntry2		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
xmlHashDeallocator f)
Packit Service a31ea6
int	xmlHashRemoveEntry3		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
xmlHashDeallocator f)
Packit Service a31ea6
void	xmlHashScan			(xmlHashTablePtr table, 
xmlHashScanner f,
void * data)
Packit Service a31ea6
void	xmlHashScan3			(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
xmlHashScanner f,
void * data)
Packit Service a31ea6
void	xmlHashScanFull			(xmlHashTablePtr table, 
xmlHashScannerFull f,
void * data)
Packit Service a31ea6
void	xmlHashScanFull3		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
xmlHashScannerFull f,
void * data)
Packit Service a31ea6
Function type: xmlHashScanner
Packit Service a31ea6
void	xmlHashScanner			(void * payload, 
void * data,
xmlChar * name)
Packit Service a31ea6
Packit Service a31ea6
Function type: xmlHashScannerFull
Packit Service a31ea6
void	xmlHashScannerFull		(void * payload, 
void * data,
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3)
Packit Service a31ea6
Packit Service a31ea6
int	xmlHashSize			(xmlHashTablePtr table)
Packit Service a31ea6
int	xmlHashUpdateEntry		(xmlHashTablePtr table, 
const xmlChar * name,
void * userdata,
xmlHashDeallocator f)
Packit Service a31ea6
int	xmlHashUpdateEntry2		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
void * userdata,
xmlHashDeallocator f)
Packit Service a31ea6
int	xmlHashUpdateEntry3		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
void * userdata,
xmlHashDeallocator f)
Packit Service a31ea6

Description

Packit Service a31ea6

Macro: XML_CAST_FPTR

#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

Packit Service a31ea6

Structure xmlHashTable

Structure xmlHashTable
struct _xmlHashTable {
Packit Service a31ea6
The content of this structure is not made public by the API.
Packit Service a31ea6
}

Function: xmlHashAddEntry

int	xmlHashAddEntry			(xmlHashTablePtr table, 
const xmlChar * name,
void * userdata)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>userdata</tt>:a pointer to the userdata
<tt>Returns</tt>:0 the addition succeeded and -1 in case of error.

Function: xmlHashAddEntry2

int	xmlHashAddEntry2		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
void * userdata)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>userdata</tt>:a pointer to the userdata
<tt>Returns</tt>:0 the addition succeeded and -1 in case of error.

Function: xmlHashAddEntry3

int	xmlHashAddEntry3		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
void * userdata)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>name3</tt>:a third name of the userdata
<tt>userdata</tt>:a pointer to the userdata
<tt>Returns</tt>:0 the addition succeeded and -1 in case of error.

Function type: xmlHashCopier

Function type: xmlHashCopier
Packit Service a31ea6
void *	xmlHashCopier			(void * payload, 
xmlChar * name)
Packit Service a31ea6

Callback to copy data from a hash.

<tt>payload</tt>:the data in the hash
<tt>name</tt>:the name associated
<tt>Returns</tt>:a copy of the data or NULL in case of error.

Packit Service a31ea6

Function: xmlHashCopy

xmlHashTablePtr	xmlHashCopy		(xmlHashTablePtr table, 
xmlHashCopier f)
Packit Service a31ea6

Scan the hash @table and applied @f to each value.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>f</tt>:the copier function for items in the hash
<tt>Returns</tt>:the new table or NULL in case of error.

Function: xmlHashCreate

xmlHashTablePtr	xmlHashCreate		(int size)
Packit Service a31ea6

Create a new xmlHashTablePtr.

Packit Service a31ea6
<tt>size</tt>:the size of the hash table
<tt>Returns</tt>:the newly created object, or NULL if an error occurred.

Function: xmlHashCreateDict

xmlHashTablePtr	xmlHashCreateDict	(int size, 
xmlDictPtr dict)
Packit Service a31ea6

Create a new xmlHashTablePtr which will use @dict as the internal dictionary

Packit Service a31ea6
<tt>size</tt>:the size of the hash table
<tt>dict</tt>:a dictionary to use for the hash
<tt>Returns</tt>:the newly created object, or NULL if an error occurred.

Function type: xmlHashDeallocator

Function type: xmlHashDeallocator
Packit Service a31ea6
void	xmlHashDeallocator		(void * payload, 
xmlChar * name)
Packit Service a31ea6

Callback to free data from a hash.

<tt>payload</tt>:the data in the hash
<tt>name</tt>:the name associated

Packit Service a31ea6

Function: xmlHashFree

void	xmlHashFree			(xmlHashTablePtr table, 
xmlHashDeallocator f)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>f</tt>:the deallocator function for items in the hash

Function: xmlHashLookup

void *	xmlHashLookup			(xmlHashTablePtr table, 
const xmlChar * name)
Packit Service a31ea6

Find the userdata specified by the @name.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>Returns</tt>:the pointer to the userdata

Function: xmlHashLookup2

void *	xmlHashLookup2			(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>Returns</tt>:the pointer to the userdata

Function: xmlHashLookup3

void *	xmlHashLookup3			(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>name3</tt>:a third name of the userdata
<tt>Returns</tt>:the a pointer to the userdata

Function: xmlHashQLookup

void *	xmlHashQLookup			(xmlHashTablePtr table, 
const xmlChar * prefix,
const xmlChar * name)
Packit Service a31ea6

Find the userdata specified by the QName @prefix:@name/@name.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>prefix</tt>:the prefix of the userdata
<tt>name</tt>:the name of the userdata
<tt>Returns</tt>:the pointer to the userdata

Function: xmlHashQLookup2

void *	xmlHashQLookup2			(xmlHashTablePtr table, 
const xmlChar * prefix,
const xmlChar * name,
const xmlChar * prefix2,
const xmlChar * name2)
Packit Service a31ea6

Find the userdata specified by the QNames tuple

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>prefix</tt>:the prefix of the userdata
<tt>name</tt>:the name of the userdata
<tt>prefix2</tt>:the second prefix of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>Returns</tt>:the pointer to the userdata

Function: xmlHashQLookup3

void *	xmlHashQLookup3			(xmlHashTablePtr table, 
const xmlChar * prefix,
const xmlChar * name,
const xmlChar * prefix2,
const xmlChar * name2,
const xmlChar * prefix3,
const xmlChar * name3)
Packit Service a31ea6

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

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>prefix</tt>:the prefix of the userdata
<tt>name</tt>:the name of the userdata
<tt>prefix2</tt>:the second prefix of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>prefix3</tt>:the third prefix of the userdata
<tt>name3</tt>:a third name of the userdata
<tt>Returns</tt>:the a pointer to the userdata

Function: xmlHashRemoveEntry

int	xmlHashRemoveEntry		(xmlHashTablePtr table, 
const xmlChar * name,
xmlHashDeallocator f)
Packit Service a31ea6

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>f</tt>:the deallocator function for removed item (if any)
<tt>Returns</tt>:0 if the removal succeeded and -1 in case of error or not found.

Function: xmlHashRemoveEntry2

int	xmlHashRemoveEntry2		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
xmlHashDeallocator f)
Packit Service a31ea6

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>f</tt>:the deallocator function for removed item (if any)
<tt>Returns</tt>:0 if the removal succeeded and -1 in case of error or not found.

Function: xmlHashRemoveEntry3

int	xmlHashRemoveEntry3		(xmlHashTablePtr table, 
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3,
xmlHashDeallocator f)
Packit Service a31ea6

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>name3</tt>:a third name of the userdata
<tt>f</tt>:the deallocator function for removed item (if any)
<tt>Returns</tt>:0 if the removal succeeded and -1 in case of error or not found.

Function: xmlHashScan

void	xmlHashScan			(xmlHashTablePtr table, 
xmlHashScanner f,
void * data)
Packit Service a31ea6

Scan the hash @table and applied @f to each value.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>f</tt>:the scanner function for items in the hash
<tt>data</tt>:extra data passed to f

Function: xmlHashScan3

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

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata or NULL
<tt>name2</tt>:a second name of the userdata or NULL
<tt>name3</tt>:a third name of the userdata or NULL
<tt>f</tt>:the scanner function for items in the hash
<tt>data</tt>:extra data passed to f

Function: xmlHashScanFull

void	xmlHashScanFull			(xmlHashTablePtr table, 
xmlHashScannerFull f,
void * data)
Packit Service a31ea6

Scan the hash @table and applied @f to each value.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>f</tt>:the scanner function for items in the hash
<tt>data</tt>:extra data passed to f

Function: xmlHashScanFull3

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

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata or NULL
<tt>name2</tt>:a second name of the userdata or NULL
<tt>name3</tt>:a third name of the userdata or NULL
<tt>f</tt>:the scanner function for items in the hash
<tt>data</tt>:extra data passed to f

Function type: xmlHashScanner

Function type: xmlHashScanner
Packit Service a31ea6
void	xmlHashScanner			(void * payload, 
void * data,
xmlChar * name)
Packit Service a31ea6

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

<tt>payload</tt>:the data in the hash
<tt>data</tt>:extra scannner data
<tt>name</tt>:the name associated

Packit Service a31ea6

Function type: xmlHashScannerFull

Function type: xmlHashScannerFull
Packit Service a31ea6
void	xmlHashScannerFull		(void * payload, 
void * data,
const xmlChar * name,
const xmlChar * name2,
const xmlChar * name3)
Packit Service a31ea6

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

<tt>payload</tt>:the data in the hash
<tt>data</tt>:extra scannner data
<tt>name</tt>:the name associated
<tt>name2</tt>:the second name associated
<tt>name3</tt>:the third name associated

Packit Service a31ea6

Function: xmlHashSize

int	xmlHashSize			(xmlHashTablePtr table)
Packit Service a31ea6

Query the number of elements installed in the hash @table.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>Returns</tt>:the number of elements in the hash table or -1 in case of error

Function: xmlHashUpdateEntry

int	xmlHashUpdateEntry		(xmlHashTablePtr table, 
const xmlChar * name,
void * userdata,
xmlHashDeallocator f)
Packit Service a31ea6

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>userdata</tt>:a pointer to the userdata
<tt>f</tt>:the deallocator function for replaced item (if any)
<tt>Returns</tt>:0 the addition succeeded and -1 in case of error.

Function: xmlHashUpdateEntry2

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

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>userdata</tt>:a pointer to the userdata
<tt>f</tt>:the deallocator function for replaced item (if any)
<tt>Returns</tt>:0 the addition succeeded and -1 in case of error.

Function: xmlHashUpdateEntry3

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

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.

Packit Service a31ea6
<tt>table</tt>:the hash table
<tt>name</tt>:the name of the userdata
<tt>name2</tt>:a second name of the userdata
<tt>name3</tt>:a third name of the userdata
<tt>userdata</tt>:a pointer to the userdata
<tt>f</tt>:the deallocator function for replaced item (if any)
<tt>Returns</tt>:0 the addition succeeded and -1 in case of error.

Daniel Veillard

</body></html>