File indexing completed on 2025-12-16 10:19:29
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef __XML_HASH_H__
0012 #define __XML_HASH_H__
0013
0014 #include <libxml/xmlversion.h>
0015 #include <libxml/dict.h>
0016 #include <libxml/xmlstring.h>
0017
0018 #ifdef __cplusplus
0019 extern "C" {
0020 #endif
0021
0022
0023
0024
0025 typedef struct _xmlHashTable xmlHashTable;
0026 typedef xmlHashTable *xmlHashTablePtr;
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 #define XML_CAST_FPTR(fptr) fptr
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060 typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name);
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070 typedef void *(*xmlHashCopier)(void *payload, const xmlChar *name);
0071
0072
0073
0074
0075
0076
0077
0078
0079 typedef void (*xmlHashScanner)(void *payload, void *data, const xmlChar *name);
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090 typedef void (*xmlHashScannerFull)(void *payload, void *data,
0091 const xmlChar *name, const xmlChar *name2,
0092 const xmlChar *name3);
0093
0094
0095
0096
0097 XMLPUBFUN xmlHashTablePtr
0098 xmlHashCreate (int size);
0099 XMLPUBFUN xmlHashTablePtr
0100 xmlHashCreateDict (int size,
0101 xmlDictPtr dict);
0102 XMLPUBFUN void
0103 xmlHashFree (xmlHashTablePtr hash,
0104 xmlHashDeallocator dealloc);
0105 XMLPUBFUN void
0106 xmlHashDefaultDeallocator(void *entry,
0107 const xmlChar *name);
0108
0109
0110
0111
0112 XMLPUBFUN int
0113 xmlHashAdd (xmlHashTablePtr hash,
0114 const xmlChar *name,
0115 void *userdata);
0116 XMLPUBFUN int
0117 xmlHashAddEntry (xmlHashTablePtr hash,
0118 const xmlChar *name,
0119 void *userdata);
0120 XMLPUBFUN int
0121 xmlHashUpdateEntry (xmlHashTablePtr hash,
0122 const xmlChar *name,
0123 void *userdata,
0124 xmlHashDeallocator dealloc);
0125 XMLPUBFUN int
0126 xmlHashAdd2 (xmlHashTablePtr hash,
0127 const xmlChar *name,
0128 const xmlChar *name2,
0129 void *userdata);
0130 XMLPUBFUN int
0131 xmlHashAddEntry2 (xmlHashTablePtr hash,
0132 const xmlChar *name,
0133 const xmlChar *name2,
0134 void *userdata);
0135 XMLPUBFUN int
0136 xmlHashUpdateEntry2 (xmlHashTablePtr hash,
0137 const xmlChar *name,
0138 const xmlChar *name2,
0139 void *userdata,
0140 xmlHashDeallocator dealloc);
0141 XMLPUBFUN int
0142 xmlHashAdd3 (xmlHashTablePtr hash,
0143 const xmlChar *name,
0144 const xmlChar *name2,
0145 const xmlChar *name3,
0146 void *userdata);
0147 XMLPUBFUN int
0148 xmlHashAddEntry3 (xmlHashTablePtr hash,
0149 const xmlChar *name,
0150 const xmlChar *name2,
0151 const xmlChar *name3,
0152 void *userdata);
0153 XMLPUBFUN int
0154 xmlHashUpdateEntry3 (xmlHashTablePtr hash,
0155 const xmlChar *name,
0156 const xmlChar *name2,
0157 const xmlChar *name3,
0158 void *userdata,
0159 xmlHashDeallocator dealloc);
0160
0161
0162
0163
0164 XMLPUBFUN int
0165 xmlHashRemoveEntry (xmlHashTablePtr hash,
0166 const xmlChar *name,
0167 xmlHashDeallocator dealloc);
0168 XMLPUBFUN int
0169 xmlHashRemoveEntry2 (xmlHashTablePtr hash,
0170 const xmlChar *name,
0171 const xmlChar *name2,
0172 xmlHashDeallocator dealloc);
0173 XMLPUBFUN int
0174 xmlHashRemoveEntry3 (xmlHashTablePtr hash,
0175 const xmlChar *name,
0176 const xmlChar *name2,
0177 const xmlChar *name3,
0178 xmlHashDeallocator dealloc);
0179
0180
0181
0182
0183 XMLPUBFUN void *
0184 xmlHashLookup (xmlHashTablePtr hash,
0185 const xmlChar *name);
0186 XMLPUBFUN void *
0187 xmlHashLookup2 (xmlHashTablePtr hash,
0188 const xmlChar *name,
0189 const xmlChar *name2);
0190 XMLPUBFUN void *
0191 xmlHashLookup3 (xmlHashTablePtr hash,
0192 const xmlChar *name,
0193 const xmlChar *name2,
0194 const xmlChar *name3);
0195 XMLPUBFUN void *
0196 xmlHashQLookup (xmlHashTablePtr hash,
0197 const xmlChar *prefix,
0198 const xmlChar *name);
0199 XMLPUBFUN void *
0200 xmlHashQLookup2 (xmlHashTablePtr hash,
0201 const xmlChar *prefix,
0202 const xmlChar *name,
0203 const xmlChar *prefix2,
0204 const xmlChar *name2);
0205 XMLPUBFUN void *
0206 xmlHashQLookup3 (xmlHashTablePtr hash,
0207 const xmlChar *prefix,
0208 const xmlChar *name,
0209 const xmlChar *prefix2,
0210 const xmlChar *name2,
0211 const xmlChar *prefix3,
0212 const xmlChar *name3);
0213
0214
0215
0216
0217 XMLPUBFUN xmlHashTablePtr
0218 xmlHashCopySafe (xmlHashTablePtr hash,
0219 xmlHashCopier copy,
0220 xmlHashDeallocator dealloc);
0221 XMLPUBFUN xmlHashTablePtr
0222 xmlHashCopy (xmlHashTablePtr hash,
0223 xmlHashCopier copy);
0224 XMLPUBFUN int
0225 xmlHashSize (xmlHashTablePtr hash);
0226 XMLPUBFUN void
0227 xmlHashScan (xmlHashTablePtr hash,
0228 xmlHashScanner scan,
0229 void *data);
0230 XMLPUBFUN void
0231 xmlHashScan3 (xmlHashTablePtr hash,
0232 const xmlChar *name,
0233 const xmlChar *name2,
0234 const xmlChar *name3,
0235 xmlHashScanner scan,
0236 void *data);
0237 XMLPUBFUN void
0238 xmlHashScanFull (xmlHashTablePtr hash,
0239 xmlHashScannerFull scan,
0240 void *data);
0241 XMLPUBFUN void
0242 xmlHashScanFull3 (xmlHashTablePtr hash,
0243 const xmlChar *name,
0244 const xmlChar *name2,
0245 const xmlChar *name3,
0246 xmlHashScannerFull scan,
0247 void *data);
0248 #ifdef __cplusplus
0249 }
0250 #endif
0251 #endif