11 #ifndef __XML_HASH_H__
12 #define __XML_HASH_H__
21 typedef struct _xmlHashTable xmlHashTable;
22 typedef xmlHashTable *xmlHashTablePtr;
28 #include <libxml/xmlversion.h>
29 #include <libxml/parser.h>
30 #include <libxml/dict.h>
56 #define XML_CAST_FPTR(fptr) fptr
69 typedef void (*xmlHashDeallocator)(
void *payload, xmlChar *name);
79 typedef void *(*xmlHashCopier)(
void *payload, xmlChar *name);
88 typedef void (*xmlHashScanner)(
void *payload,
void *data, xmlChar *name);
99 typedef void (*xmlHashScannerFull)(
void *payload,
void *data,
100 const xmlChar *name,
const xmlChar *name2,
101 const xmlChar *name3);
106 XMLPUBFUN xmlHashTablePtr XMLCALL
107 xmlHashCreate (
int size);
108 XMLPUBFUN xmlHashTablePtr XMLCALL
109 xmlHashCreateDict(
int size,
111 XMLPUBFUN
void XMLCALL
112 xmlHashFree (xmlHashTablePtr table,
113 xmlHashDeallocator f);
118 XMLPUBFUN
int XMLCALL
119 xmlHashAddEntry (xmlHashTablePtr table,
122 XMLPUBFUN
int XMLCALL
123 xmlHashUpdateEntry(xmlHashTablePtr table,
126 xmlHashDeallocator f);
127 XMLPUBFUN
int XMLCALL
128 xmlHashAddEntry2(xmlHashTablePtr table,
130 const xmlChar *name2,
132 XMLPUBFUN
int XMLCALL
133 xmlHashUpdateEntry2(xmlHashTablePtr table,
135 const xmlChar *name2,
137 xmlHashDeallocator f);
138 XMLPUBFUN
int XMLCALL
139 xmlHashAddEntry3(xmlHashTablePtr table,
141 const xmlChar *name2,
142 const xmlChar *name3,
144 XMLPUBFUN
int XMLCALL
145 xmlHashUpdateEntry3(xmlHashTablePtr table,
147 const xmlChar *name2,
148 const xmlChar *name3,
150 xmlHashDeallocator f);
155 XMLPUBFUN
int XMLCALL
156 xmlHashRemoveEntry(xmlHashTablePtr table,
const xmlChar *name,
157 xmlHashDeallocator f);
158 XMLPUBFUN
int XMLCALL
159 xmlHashRemoveEntry2(xmlHashTablePtr table,
const xmlChar *name,
160 const xmlChar *name2, xmlHashDeallocator f);
161 XMLPUBFUN
int XMLCALL
162 xmlHashRemoveEntry3(xmlHashTablePtr table,
const xmlChar *name,
163 const xmlChar *name2,
const xmlChar *name3,
164 xmlHashDeallocator f);
169 XMLPUBFUN
void * XMLCALL
170 xmlHashLookup (xmlHashTablePtr table,
171 const xmlChar *name);
172 XMLPUBFUN
void * XMLCALL
173 xmlHashLookup2 (xmlHashTablePtr table,
175 const xmlChar *name2);
176 XMLPUBFUN
void * XMLCALL
177 xmlHashLookup3 (xmlHashTablePtr table,
179 const xmlChar *name2,
180 const xmlChar *name3);
181 XMLPUBFUN
void * XMLCALL
182 xmlHashQLookup (xmlHashTablePtr table,
184 const xmlChar *prefix);
185 XMLPUBFUN
void * XMLCALL
186 xmlHashQLookup2 (xmlHashTablePtr table,
188 const xmlChar *prefix,
189 const xmlChar *name2,
190 const xmlChar *prefix2);
191 XMLPUBFUN
void * XMLCALL
192 xmlHashQLookup3 (xmlHashTablePtr table,
194 const xmlChar *prefix,
195 const xmlChar *name2,
196 const xmlChar *prefix2,
197 const xmlChar *name3,
198 const xmlChar *prefix3);
203 XMLPUBFUN xmlHashTablePtr XMLCALL
204 xmlHashCopy (xmlHashTablePtr table,
206 XMLPUBFUN
int XMLCALL
207 xmlHashSize (xmlHashTablePtr table);
208 XMLPUBFUN
void XMLCALL
209 xmlHashScan (xmlHashTablePtr table,
212 XMLPUBFUN
void XMLCALL
213 xmlHashScan3 (xmlHashTablePtr table,
215 const xmlChar *name2,
216 const xmlChar *name3,
219 XMLPUBFUN
void XMLCALL
220 xmlHashScanFull (xmlHashTablePtr table,
221 xmlHashScannerFull f,
223 XMLPUBFUN
void XMLCALL
224 xmlHashScanFull3(xmlHashTablePtr table,
226 const xmlChar *name2,
227 const xmlChar *name3,
228 xmlHashScannerFull f,