00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __XML_HASH_H__
00012 #define __XML_HASH_H__
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00018
00019
00020
00021 typedef struct _xmlHashTable xmlHashTable;
00022 typedef xmlHashTable *xmlHashTablePtr;
00023
00024 #ifdef __cplusplus
00025 }
00026 #endif
00027
00028 #include <libxml/xmlversion.h>
00029 #include <libxml/parser.h>
00030 #include <libxml/dict.h>
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036
00037
00038
00039
00040
00041
00042
00056 #define XML_CAST_FPTR(fptr) fptr
00057
00058
00059
00060
00061
00069 typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
00079 typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
00088 typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
00099 typedef void (*xmlHashScannerFull)(void *payload, void *data,
00100 const xmlChar *name, const xmlChar *name2,
00101 const xmlChar *name3);
00102
00103
00104
00105
00106 XMLPUBFUN xmlHashTablePtr XMLCALL
00107 xmlHashCreate (int size);
00108 XMLPUBFUN xmlHashTablePtr XMLCALL
00109 xmlHashCreateDict(int size,
00110 xmlDictPtr dict);
00111 XMLPUBFUN void XMLCALL
00112 xmlHashFree (xmlHashTablePtr table,
00113 xmlHashDeallocator f);
00114
00115
00116
00117
00118 XMLPUBFUN int XMLCALL
00119 xmlHashAddEntry (xmlHashTablePtr table,
00120 const xmlChar *name,
00121 void *userdata);
00122 XMLPUBFUN int XMLCALL
00123 xmlHashUpdateEntry(xmlHashTablePtr table,
00124 const xmlChar *name,
00125 void *userdata,
00126 xmlHashDeallocator f);
00127 XMLPUBFUN int XMLCALL
00128 xmlHashAddEntry2(xmlHashTablePtr table,
00129 const xmlChar *name,
00130 const xmlChar *name2,
00131 void *userdata);
00132 XMLPUBFUN int XMLCALL
00133 xmlHashUpdateEntry2(xmlHashTablePtr table,
00134 const xmlChar *name,
00135 const xmlChar *name2,
00136 void *userdata,
00137 xmlHashDeallocator f);
00138 XMLPUBFUN int XMLCALL
00139 xmlHashAddEntry3(xmlHashTablePtr table,
00140 const xmlChar *name,
00141 const xmlChar *name2,
00142 const xmlChar *name3,
00143 void *userdata);
00144 XMLPUBFUN int XMLCALL
00145 xmlHashUpdateEntry3(xmlHashTablePtr table,
00146 const xmlChar *name,
00147 const xmlChar *name2,
00148 const xmlChar *name3,
00149 void *userdata,
00150 xmlHashDeallocator f);
00151
00152
00153
00154
00155 XMLPUBFUN int XMLCALL
00156 xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
00157 xmlHashDeallocator f);
00158 XMLPUBFUN int XMLCALL
00159 xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
00160 const xmlChar *name2, xmlHashDeallocator f);
00161 XMLPUBFUN int XMLCALL
00162 xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
00163 const xmlChar *name2, const xmlChar *name3,
00164 xmlHashDeallocator f);
00165
00166
00167
00168
00169 XMLPUBFUN void * XMLCALL
00170 xmlHashLookup (xmlHashTablePtr table,
00171 const xmlChar *name);
00172 XMLPUBFUN void * XMLCALL
00173 xmlHashLookup2 (xmlHashTablePtr table,
00174 const xmlChar *name,
00175 const xmlChar *name2);
00176 XMLPUBFUN void * XMLCALL
00177 xmlHashLookup3 (xmlHashTablePtr table,
00178 const xmlChar *name,
00179 const xmlChar *name2,
00180 const xmlChar *name3);
00181 XMLPUBFUN void * XMLCALL
00182 xmlHashQLookup (xmlHashTablePtr table,
00183 const xmlChar *name,
00184 const xmlChar *prefix);
00185 XMLPUBFUN void * XMLCALL
00186 xmlHashQLookup2 (xmlHashTablePtr table,
00187 const xmlChar *name,
00188 const xmlChar *prefix,
00189 const xmlChar *name2,
00190 const xmlChar *prefix2);
00191 XMLPUBFUN void * XMLCALL
00192 xmlHashQLookup3 (xmlHashTablePtr table,
00193 const xmlChar *name,
00194 const xmlChar *prefix,
00195 const xmlChar *name2,
00196 const xmlChar *prefix2,
00197 const xmlChar *name3,
00198 const xmlChar *prefix3);
00199
00200
00201
00202
00203 XMLPUBFUN xmlHashTablePtr XMLCALL
00204 xmlHashCopy (xmlHashTablePtr table,
00205 xmlHashCopier f);
00206 XMLPUBFUN int XMLCALL
00207 xmlHashSize (xmlHashTablePtr table);
00208 XMLPUBFUN void XMLCALL
00209 xmlHashScan (xmlHashTablePtr table,
00210 xmlHashScanner f,
00211 void *data);
00212 XMLPUBFUN void XMLCALL
00213 xmlHashScan3 (xmlHashTablePtr table,
00214 const xmlChar *name,
00215 const xmlChar *name2,
00216 const xmlChar *name3,
00217 xmlHashScanner f,
00218 void *data);
00219 XMLPUBFUN void XMLCALL
00220 xmlHashScanFull (xmlHashTablePtr table,
00221 xmlHashScannerFull f,
00222 void *data);
00223 XMLPUBFUN void XMLCALL
00224 xmlHashScanFull3(xmlHashTablePtr table,
00225 const xmlChar *name,
00226 const xmlChar *name2,
00227 const xmlChar *name3,
00228 xmlHashScannerFull f,
00229 void *data);
00230 #ifdef __cplusplus
00231 }
00232 #endif
00233 #endif