Linux server1.sbs.cy 5.14.0-362.18.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jan 29 07:05:48 EST 2024 x86_64
Apache
: 199.192.25.12 | : 172.71.255.50
28 Domain
8.1.31
administrator
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
opt /
cpanel /
ea-libxml2 /
share /
gtk-doc /
html /
libxml2 /
[ HOME SHELL ]
Name
Size
Permission
Action
general.html
4.93
KB
-rw-r--r--
home.png
654
B
-rw-r--r--
index.html
3.55
KB
-rw-r--r--
left.png
459
B
-rw-r--r--
libxml2-HTMLparser.html
63.84
KB
-rw-r--r--
libxml2-HTMLtree.html
23.51
KB
-rw-r--r--
libxml2-SAX.html
36.87
KB
-rw-r--r--
libxml2-SAX2.html
37.68
KB
-rw-r--r--
libxml2-c14n.html
12.87
KB
-rw-r--r--
libxml2-catalog.html
35.23
KB
-rw-r--r--
libxml2-chvalid.html
18.75
KB
-rw-r--r--
libxml2-debugXML.html
32.2
KB
-rw-r--r--
libxml2-dict.html
13.01
KB
-rw-r--r--
libxml2-encoding.html
31.35
KB
-rw-r--r--
libxml2-entities.html
25.05
KB
-rw-r--r--
libxml2-globals.html
3.47
KB
-rw-r--r--
libxml2-hash.html
46.9
KB
-rw-r--r--
libxml2-list.html
24.48
KB
-rw-r--r--
libxml2-nanoftp.html
21.59
KB
-rw-r--r--
libxml2-nanohttp.html
15.84
KB
-rw-r--r--
libxml2-parser.html
157.48
KB
-rw-r--r--
libxml2-parserInternals.html
121.69
KB
-rw-r--r--
libxml2-pattern.html
20.25
KB
-rw-r--r--
libxml2-relaxng.html
34.52
KB
-rw-r--r--
libxml2-schemasInternals.html
61.84
KB
-rw-r--r--
libxml2-schematron.html
16.23
KB
-rw-r--r--
libxml2-threads.html
11.59
KB
-rw-r--r--
libxml2-tree.html
250.97
KB
-rw-r--r--
libxml2-uri.html
21.68
KB
-rw-r--r--
libxml2-valid.html
97.47
KB
-rw-r--r--
libxml2-xinclude.html
16.99
KB
-rw-r--r--
libxml2-xlink.html
16.47
KB
-rw-r--r--
libxml2-xmlIO.html
65.96
KB
-rw-r--r--
libxml2-xmlautomata.html
34.03
KB
-rw-r--r--
libxml2-xmlerror.html
87.06
KB
-rw-r--r--
libxml2-xmlexports.html
1.64
KB
-rw-r--r--
libxml2-xmlmemory.html
24.43
KB
-rw-r--r--
libxml2-xmlmodule.html
6.77
KB
-rw-r--r--
libxml2-xmlreader.html
108.51
KB
-rw-r--r--
libxml2-xmlregexp.html
40.59
KB
-rw-r--r--
libxml2-xmlsave.html
16.54
KB
-rw-r--r--
libxml2-xmlschemas.html
41.32
KB
-rw-r--r--
libxml2-xmlschemastypes.html
43.67
KB
-rw-r--r--
libxml2-xmlstring.html
33.92
KB
-rw-r--r--
libxml2-xmlunicode.html
103.86
KB
-rw-r--r--
libxml2-xmlversion.html
14.51
KB
-rw-r--r--
libxml2-xmlwriter.html
110.72
KB
-rw-r--r--
libxml2-xpath.html
61.42
KB
-rw-r--r--
libxml2-xpathInternals.html
141.31
KB
-rw-r--r--
libxml2-xpointer.html
24.62
KB
-rw-r--r--
libxml2.devhelp2
379.84
KB
-rw-r--r--
right.png
472
B
-rw-r--r--
style.css
820
B
-rw-r--r--
up.png
406
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : libxml2-hash.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>hash: Chained hash tables</title> <meta name="generator" content="Libxml2 devhelp stylesheet"> <link rel="start" href="index.html" title="libxml2 Reference Manual"> <link rel="up" href="general.html" title="API"> <link rel="stylesheet" href="style.css" type="text/css"> <link rel="chapter" href="general.html" title="API"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> <td><a accesskey="p" href="libxml2-globals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <td><a accesskey="n" href="libxml2-list.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> <th width="100%" align="center">libxml2 Reference Manual</th> </tr></table> <h2><span class="refentrytitle">hash</span></h2> <p>hash - Chained hash tables</p> <p>This module implements the hash table support used in various places in the library. </p> <p>Author(s): Bjorn Reese <bjorn.reese@systematic.dk> </p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <pre class="synopsis">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr); typedef struct _xmlHashTable <a href="#xmlHashTable">xmlHashTable</a>; typedef <a href="libxml2-hash.html#xmlHashTable">xmlHashTable</a> * <a href="#xmlHashTablePtr">xmlHashTablePtr</a>; int <a href="#xmlHashAdd">xmlHashAdd</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> void * payload); int <a href="#xmlHashAdd2">xmlHashAdd2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> void * payload); int <a href="#xmlHashAdd3">xmlHashAdd3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> void * payload); int <a href="#xmlHashAddEntry">xmlHashAddEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> void * payload); int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> void * payload); int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> void * payload); typedef void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> copy); <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopySafe">xmlHashCopySafe</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> copyFunc, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> deallocFunc); <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size); <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreateDict">xmlHashCreateDict</a> (int size, <br> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict); typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key); void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key); void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2); void * <a href="#xmlHashLookup3">xmlHashLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3); void * <a href="#xmlHashQLookup">xmlHashQLookup</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); void * <a href="#xmlHashQLookup2">xmlHashQLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2); void * <a href="#xmlHashQLookup3">xmlHashQLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3); int <a href="#xmlHashRemoveEntry">xmlHashRemoveEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); int <a href="#xmlHashRemoveEntry2">xmlHashRemoveEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); int <a href="#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); void <a href="#xmlHashScan">xmlHashScan</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> scan, <br> void * data); void <a href="#xmlHashScan3">xmlHashScan3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> scan, <br> void * data); void <a href="#xmlHashScanFull">xmlHashScanFull</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> scan, <br> void * data); void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> scan, <br> void * data); typedef void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br> void * data, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name); typedef void <a href="#xmlHashScannerFull">xmlHashScannerFull</a> (void * payload, <br> void * data, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3); int <a href="#xmlHashSize">xmlHashSize</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash); int <a href="#xmlHashUpdateEntry">xmlHashUpdateEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> void * payload, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); int <a href="#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> void * payload, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); int <a href="#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> void * payload, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc); </pre> </div> <div class="refsect1" lang="en"><h2>Description</h2></div> <div class="refsect1" lang="en"> <h2>Details</h2> <div class="refsect2" lang="en"> <div class="refsect2" lang="en"> <h3> <a name="XML_CAST_FPTR">Macro </a>XML_CAST_FPTR</h3> <pre class="programlisting">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr); </pre> <p>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</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody><tr> <td><span class="term"><i><tt>fptr</tt></i>:</span></td> <td>pointer to a function</td> </tr></tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashTable">Structure </a>xmlHashTable</h3> <pre class="programlisting">struct _xmlHashTable { The content of this structure is not made public by the API. } xmlHashTable; </pre> <p></p> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashTablePtr">Typedef </a>xmlHashTablePtr</h3> <pre class="programlisting"><a href="libxml2-hash.html#xmlHashTable">xmlHashTable</a> * xmlHashTablePtr; </pre> <p></p> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashCopier"></a>Function type xmlHashCopier</h3> <pre class="programlisting">void * xmlHashCopier (void * payload, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br> </pre> <p>Callback to copy data from a hash.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>the data in the hash</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>the name associated</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a copy of the data or NULL in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashDeallocator"></a>Function type xmlHashDeallocator</h3> <pre class="programlisting">void xmlHashDeallocator (void * payload, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br> </pre> <p>Callback to free data from a hash.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>the data in the hash</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>the name associated</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashScanner"></a>Function type xmlHashScanner</h3> <pre class="programlisting">void xmlHashScanner (void * payload, <br> void * data, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br> </pre> <p>Callback when scanning data in a hash with the simple scanner.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>the data in the hash</td> </tr> <tr> <td><span class="term"><i><tt>data</tt></i>:</span></td> <td>extra scanner data</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>the name associated</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashScannerFull"></a>Function type xmlHashScannerFull</h3> <pre class="programlisting">void xmlHashScannerFull (void * payload, <br> void * data, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3)<br> </pre> <p>Callback when scanning data in a hash with the full scanner.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>the data in the hash</td> </tr> <tr> <td><span class="term"><i><tt>data</tt></i>:</span></td> <td>extra scanner data</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>the name associated</td> </tr> <tr> <td><span class="term"><i><tt>name2</tt></i>:</span></td> <td>the second name associated</td> </tr> <tr> <td><span class="term"><i><tt>name3</tt></i>:</span></td> <td>the third name associated</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashAdd"></a>xmlHashAdd ()</h3> <pre class="programlisting">int xmlHashAdd (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> void * payload)<br> </pre> <p>Add a hash table entry. If an entry with this key already exists, payload will not be updated and 0 is returned. This return value can't be distinguished from out-of-memory errors, so this function should be used with care. Available since 2.13.0.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>1 on success, 0 if an entry exists and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashAdd2"></a>xmlHashAdd2 ()</h3> <pre class="programlisting">int xmlHashAdd2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> void * payload)<br> </pre> <p>Add a hash table entry with two strings as key. See <a href="libxml2-hash.html#xmlHashAdd">xmlHashAdd</a>. Available since 2.13.0.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>1 on success, 0 if an entry exists and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashAdd3"></a>xmlHashAdd3 ()</h3> <pre class="programlisting">int xmlHashAdd3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> void * payload)<br> </pre> <p>Add a hash table entry with three strings as key. See <a href="libxml2-hash.html#xmlHashAdd">xmlHashAdd</a>. Available since 2.13.0.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>1 on success, 0 if an entry exists and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashAddEntry"></a>xmlHashAddEntry ()</h3> <pre class="programlisting">int xmlHashAddEntry (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> void * payload)<br> </pre> <p>Add a hash table entry. If an entry with this key already exists, payload will not be updated and -1 is returned. This return value can't be distinguished from out-of-memory errors, so this function should be used with care. NOTE: This function doesn't allow to distinguish malloc failures from existing entries. Use <a href="libxml2-hash.html#xmlHashAdd">xmlHashAdd</a> instead.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashAddEntry2"></a>xmlHashAddEntry2 ()</h3> <pre class="programlisting">int xmlHashAddEntry2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> void * payload)<br> </pre> <p>Add a hash table entry with two strings as key. See <a href="libxml2-hash.html#xmlHashAddEntry">xmlHashAddEntry</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashAddEntry3"></a>xmlHashAddEntry3 ()</h3> <pre class="programlisting">int xmlHashAddEntry3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> void * payload)<br> </pre> <p>Add a hash table entry with three strings as key. See <a href="libxml2-hash.html#xmlHashAddEntry">xmlHashAddEntry</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashCopy"></a>xmlHashCopy ()</h3> <pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCopy (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> copy)<br> </pre> <p>DEPRECATED: Leaks memory in error case. Copy the hash table using @copy to copy payloads.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>copy</tt></i>:</span></td> <td>copier function for items in the hash</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>the new table or NULL if a memory allocation failed.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashCopySafe"></a>xmlHashCopySafe ()</h3> <pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCopySafe (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> copyFunc, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> deallocFunc)<br> </pre> <p>Copy the hash table using @copyFunc to copy payloads. Available since 2.13.0.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>copyFunc</tt></i>:</span></td> <td>copier function for items in the hash</td> </tr> <tr> <td><span class="term"><i><tt>deallocFunc</tt></i>:</span></td> <td>deallocation function in case of errors</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>the new table or NULL if a memory allocation failed.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashCreate"></a>xmlHashCreate ()</h3> <pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreate (int size)<br> </pre> <p>Create a new hash table. Set size to zero if the number of entries can't be estimated.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>size</tt></i>:</span></td> <td>initial size of the hash table</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>the newly created object, or NULL if a memory allocation failed.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashCreateDict"></a>xmlHashCreateDict ()</h3> <pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br> </pre> <p>Create a new hash table backed by a dictionary. This can reduce resource usage considerably if most keys passed to API functions originate from this dictionary.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>size</tt></i>:</span></td> <td>the size of the hash table</td> </tr> <tr> <td><span class="term"><i><tt>dict</tt></i>:</span></td> <td>a dictionary to use for the hash</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>the newly created object, or NULL if a memory allocation failed.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashDefaultDeallocator"></a>xmlHashDefaultDeallocator ()</h3> <pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key)<br> </pre> <p>Free a hash table entry with <a href="libxml2-xmlmemory.html#xmlFree">xmlFree</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>entry</tt></i>:</span></td> <td>hash table entry</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>the entry's string key</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashFree"></a>xmlHashFree ()</h3> <pre class="programlisting">void xmlHashFree (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Free the hash and its contents. The payload is deallocated with @dealloc if provided.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function or NULL</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashLookup"></a>xmlHashLookup ()</h3> <pre class="programlisting">void * xmlHashLookup (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key)<br> </pre> <p>Find the entry specified by @key.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>string key</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a pointer to the payload or NULL if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashLookup2"></a>xmlHashLookup2 ()</h3> <pre class="programlisting">void * xmlHashLookup2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2)<br> </pre> <p>Find the payload specified by the (@key, @key2) tuple.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a pointer to the payload or NULL if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashLookup3"></a>xmlHashLookup3 ()</h3> <pre class="programlisting">void * xmlHashLookup3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3)<br> </pre> <p>Find the payload specified by the (@key, @key2, @key3) tuple.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a pointer to the payload or NULL if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashQLookup"></a>xmlHashQLookup ()</h3> <pre class="programlisting">void * xmlHashQLookup (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br> </pre> <p>Find the payload specified by the QName @prefix:@name or @name.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>prefix</tt></i>:</span></td> <td>prefix of the string key</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>local name of the string key</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a pointer to the payload or NULL if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashQLookup2"></a>xmlHashQLookup2 ()</h3> <pre class="programlisting">void * xmlHashQLookup2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2)<br> </pre> <p>Find the payload specified by the QNames tuple.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>prefix</tt></i>:</span></td> <td>first prefix</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>first local name</td> </tr> <tr> <td><span class="term"><i><tt>prefix2</tt></i>:</span></td> <td>second prefix</td> </tr> <tr> <td><span class="term"><i><tt>name2</tt></i>:</span></td> <td>second local name</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a pointer to the payload or NULL if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashQLookup3"></a>xmlHashQLookup3 ()</h3> <pre class="programlisting">void * xmlHashQLookup3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3)<br> </pre> <p>Find the payload specified by the QNames tuple.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>prefix</tt></i>:</span></td> <td>first prefix</td> </tr> <tr> <td><span class="term"><i><tt>name</tt></i>:</span></td> <td>first local name</td> </tr> <tr> <td><span class="term"><i><tt>prefix2</tt></i>:</span></td> <td>second prefix</td> </tr> <tr> <td><span class="term"><i><tt>name2</tt></i>:</span></td> <td>second local name</td> </tr> <tr> <td><span class="term"><i><tt>prefix3</tt></i>:</span></td> <td>third prefix</td> </tr> <tr> <td><span class="term"><i><tt>name3</tt></i>:</span></td> <td>third local name</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>a pointer to the payload or NULL if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashRemoveEntry"></a>xmlHashRemoveEntry ()</h3> <pre class="programlisting">int xmlHashRemoveEntry (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Find the entry specified by the @key and remove it from the hash table. Payload will be freed with @dealloc.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>string key</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function for removed item or NULL</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 if no entry was found.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashRemoveEntry2"></a>xmlHashRemoveEntry2 ()</h3> <pre class="programlisting">int xmlHashRemoveEntry2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Remove an entry with two strings as key. See <a href="libxml2-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function for removed item or NULL</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashRemoveEntry3"></a>xmlHashRemoveEntry3 ()</h3> <pre class="programlisting">int xmlHashRemoveEntry3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Remove an entry with three strings as key. See <a href="libxml2-hash.html#xmlHashRemoveEntry">xmlHashRemoveEntry</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function for removed item or NULL</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashScan"></a>xmlHashScan ()</h3> <pre class="programlisting">void xmlHashScan (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> scan, <br> void * data)<br> </pre> <p>Scan the hash @table and apply @scan to each value.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>scan</tt></i>:</span></td> <td>scanner function for items in the hash</td> </tr> <tr> <td><span class="term"><i><tt>data</tt></i>:</span></td> <td>extra data passed to @scan</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashScan3"></a>xmlHashScan3 ()</h3> <pre class="programlisting">void xmlHashScan3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> scan, <br> void * data)<br> </pre> <p>Scan the hash @table and apply @scan to each value matching (@key, @key2, @key3) tuple. If one of the keys is null, the comparison is considered to match.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key or NULL</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key or NULL</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key or NULL</td> </tr> <tr> <td><span class="term"><i><tt>scan</tt></i>:</span></td> <td>scanner function for items in the hash</td> </tr> <tr> <td><span class="term"><i><tt>data</tt></i>:</span></td> <td>extra data passed to @scan</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashScanFull"></a>xmlHashScanFull ()</h3> <pre class="programlisting">void xmlHashScanFull (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> scan, <br> void * data)<br> </pre> <p>Scan the hash @table and apply @scan to each value.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>scan</tt></i>:</span></td> <td>scanner function for items in the hash</td> </tr> <tr> <td><span class="term"><i><tt>data</tt></i>:</span></td> <td>extra data passed to @scan</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashScanFull3"></a>xmlHashScanFull3 ()</h3> <pre class="programlisting">void xmlHashScanFull3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> scan, <br> void * data)<br> </pre> <p>Scan the hash @table and apply @scan to each value matching (@key, @key2, @key3) tuple. If one of the keys is null, the comparison is considered to match.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key or NULL</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key or NULL</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key or NULL</td> </tr> <tr> <td><span class="term"><i><tt>scan</tt></i>:</span></td> <td>scanner function for items in the hash</td> </tr> <tr> <td><span class="term"><i><tt>data</tt></i>:</span></td> <td>extra data passed to @scan</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashSize"></a>xmlHashSize ()</h3> <pre class="programlisting">int xmlHashSize (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash)<br> </pre> <p>Query the number of elements in the hash table.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>the number of elements in the hash table or -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashUpdateEntry"></a>xmlHashUpdateEntry ()</h3> <pre class="programlisting">int xmlHashUpdateEntry (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> void * payload, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Add a hash table entry. If an entry with this key already exists, the old payload will be freed and updated with the new value.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function for replaced item or NULL</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 in case of success, -1 if a memory allocation failed.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashUpdateEntry2"></a>xmlHashUpdateEntry2 ()</h3> <pre class="programlisting">int xmlHashUpdateEntry2 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> void * payload, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Add a hash table entry with two strings as key. See <a href="libxml2-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function for replaced item or NULL</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> <h3> <a name="xmlHashUpdateEntry3"></a>xmlHashUpdateEntry3 ()</h3> <pre class="programlisting">int xmlHashUpdateEntry3 (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> hash, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key2, <br> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * key3, <br> void * payload, <br> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> dealloc)<br> </pre> <p>Add a hash table entry with three strings as key. See <a href="libxml2-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a>.</p> <div class="variablelist"><table border="0"> <col align="left"> <tbody> <tr> <td><span class="term"><i><tt>hash</tt></i>:</span></td> <td>hash table</td> </tr> <tr> <td><span class="term"><i><tt>key</tt></i>:</span></td> <td>first string key</td> </tr> <tr> <td><span class="term"><i><tt>key2</tt></i>:</span></td> <td>second string key</td> </tr> <tr> <td><span class="term"><i><tt>key3</tt></i>:</span></td> <td>third string key</td> </tr> <tr> <td><span class="term"><i><tt>payload</tt></i>:</span></td> <td>pointer to the payload</td> </tr> <tr> <td><span class="term"><i><tt>dealloc</tt></i>:</span></td> <td>deallocator function for replaced item or NULL</td> </tr> <tr> <td><span class="term"><i><tt>Returns</tt></i>:</span></td> <td>0 on success and -1 in case of error.</td> </tr> </tbody> </table></div> </div> <hr> </div> </div> </body> </html>
Close