Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/lxml/includes/libxml/hash.h @ 2:6af9afd405e9 draft
"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author | shellac |
---|---|
date | Thu, 14 May 2020 14:56:58 -0400 |
parents | 26e78fe6e8c4 |
children |
comparison
equal
deleted
inserted
replaced
1:75ca89e9b81c | 2:6af9afd405e9 |
---|---|
1 /* | |
2 * Summary: Chained hash tables | |
3 * Description: This module implements the hash table support used in | |
4 * various places in the library. | |
5 * | |
6 * Copy: See Copyright for the status of this software. | |
7 * | |
8 * Author: Bjorn Reese <bjorn.reese@systematic.dk> | |
9 */ | |
10 | |
11 #ifndef __XML_HASH_H__ | |
12 #define __XML_HASH_H__ | |
13 | |
14 #ifdef __cplusplus | |
15 extern "C" { | |
16 #endif | |
17 | |
18 /* | |
19 * The hash table. | |
20 */ | |
21 typedef struct _xmlHashTable xmlHashTable; | |
22 typedef xmlHashTable *xmlHashTablePtr; | |
23 | |
24 #ifdef __cplusplus | |
25 } | |
26 #endif | |
27 | |
28 #include <libxml/xmlversion.h> | |
29 #include <libxml/parser.h> | |
30 #include <libxml/dict.h> | |
31 | |
32 #ifdef __cplusplus | |
33 extern "C" { | |
34 #endif | |
35 | |
36 /* | |
37 * Recent version of gcc produce a warning when a function pointer is assigned | |
38 * to an object pointer, or vice versa. The following macro is a dirty hack | |
39 * to allow suppression of the warning. If your architecture has function | |
40 * pointers which are a different size than a void pointer, there may be some | |
41 * serious trouble within the library. | |
42 */ | |
43 /** | |
44 * XML_CAST_FPTR: | |
45 * @fptr: pointer to a function | |
46 * | |
47 * Macro to do a casting from an object pointer to a | |
48 * function pointer without encountering a warning from | |
49 * gcc | |
50 * | |
51 * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr)) | |
52 * This macro violated ISO C aliasing rules (gcc4 on s390 broke) | |
53 * so it is disabled now | |
54 */ | |
55 | |
56 #define XML_CAST_FPTR(fptr) fptr | |
57 | |
58 | |
59 /* | |
60 * function types: | |
61 */ | |
62 /** | |
63 * xmlHashDeallocator: | |
64 * @payload: the data in the hash | |
65 * @name: the name associated | |
66 * | |
67 * Callback to free data from a hash. | |
68 */ | |
69 typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name); | |
70 /** | |
71 * xmlHashCopier: | |
72 * @payload: the data in the hash | |
73 * @name: the name associated | |
74 * | |
75 * Callback to copy data from a hash. | |
76 * | |
77 * Returns a copy of the data or NULL in case of error. | |
78 */ | |
79 typedef void *(*xmlHashCopier)(void *payload, const xmlChar *name); | |
80 /** | |
81 * xmlHashScanner: | |
82 * @payload: the data in the hash | |
83 * @data: extra scanner data | |
84 * @name: the name associated | |
85 * | |
86 * Callback when scanning data in a hash with the simple scanner. | |
87 */ | |
88 typedef void (*xmlHashScanner)(void *payload, void *data, const xmlChar *name); | |
89 /** | |
90 * xmlHashScannerFull: | |
91 * @payload: the data in the hash | |
92 * @data: extra scanner data | |
93 * @name: the name associated | |
94 * @name2: the second name associated | |
95 * @name3: the third name associated | |
96 * | |
97 * Callback when scanning data in a hash with the full scanner. | |
98 */ | |
99 typedef void (*xmlHashScannerFull)(void *payload, void *data, | |
100 const xmlChar *name, const xmlChar *name2, | |
101 const xmlChar *name3); | |
102 | |
103 /* | |
104 * Constructor and destructor. | |
105 */ | |
106 XMLPUBFUN xmlHashTablePtr XMLCALL | |
107 xmlHashCreate (int size); | |
108 XMLPUBFUN xmlHashTablePtr XMLCALL | |
109 xmlHashCreateDict(int size, | |
110 xmlDictPtr dict); | |
111 XMLPUBFUN void XMLCALL | |
112 xmlHashFree (xmlHashTablePtr table, | |
113 xmlHashDeallocator f); | |
114 XMLPUBFUN void XMLCALL | |
115 xmlHashDefaultDeallocator(void *entry, | |
116 const xmlChar *name); | |
117 | |
118 /* | |
119 * Add a new entry to the hash table. | |
120 */ | |
121 XMLPUBFUN int XMLCALL | |
122 xmlHashAddEntry (xmlHashTablePtr table, | |
123 const xmlChar *name, | |
124 void *userdata); | |
125 XMLPUBFUN int XMLCALL | |
126 xmlHashUpdateEntry(xmlHashTablePtr table, | |
127 const xmlChar *name, | |
128 void *userdata, | |
129 xmlHashDeallocator f); | |
130 XMLPUBFUN int XMLCALL | |
131 xmlHashAddEntry2(xmlHashTablePtr table, | |
132 const xmlChar *name, | |
133 const xmlChar *name2, | |
134 void *userdata); | |
135 XMLPUBFUN int XMLCALL | |
136 xmlHashUpdateEntry2(xmlHashTablePtr table, | |
137 const xmlChar *name, | |
138 const xmlChar *name2, | |
139 void *userdata, | |
140 xmlHashDeallocator f); | |
141 XMLPUBFUN int XMLCALL | |
142 xmlHashAddEntry3(xmlHashTablePtr table, | |
143 const xmlChar *name, | |
144 const xmlChar *name2, | |
145 const xmlChar *name3, | |
146 void *userdata); | |
147 XMLPUBFUN int XMLCALL | |
148 xmlHashUpdateEntry3(xmlHashTablePtr table, | |
149 const xmlChar *name, | |
150 const xmlChar *name2, | |
151 const xmlChar *name3, | |
152 void *userdata, | |
153 xmlHashDeallocator f); | |
154 | |
155 /* | |
156 * Remove an entry from the hash table. | |
157 */ | |
158 XMLPUBFUN int XMLCALL | |
159 xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name, | |
160 xmlHashDeallocator f); | |
161 XMLPUBFUN int XMLCALL | |
162 xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, | |
163 const xmlChar *name2, xmlHashDeallocator f); | |
164 XMLPUBFUN int XMLCALL | |
165 xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name, | |
166 const xmlChar *name2, const xmlChar *name3, | |
167 xmlHashDeallocator f); | |
168 | |
169 /* | |
170 * Retrieve the userdata. | |
171 */ | |
172 XMLPUBFUN void * XMLCALL | |
173 xmlHashLookup (xmlHashTablePtr table, | |
174 const xmlChar *name); | |
175 XMLPUBFUN void * XMLCALL | |
176 xmlHashLookup2 (xmlHashTablePtr table, | |
177 const xmlChar *name, | |
178 const xmlChar *name2); | |
179 XMLPUBFUN void * XMLCALL | |
180 xmlHashLookup3 (xmlHashTablePtr table, | |
181 const xmlChar *name, | |
182 const xmlChar *name2, | |
183 const xmlChar *name3); | |
184 XMLPUBFUN void * XMLCALL | |
185 xmlHashQLookup (xmlHashTablePtr table, | |
186 const xmlChar *name, | |
187 const xmlChar *prefix); | |
188 XMLPUBFUN void * XMLCALL | |
189 xmlHashQLookup2 (xmlHashTablePtr table, | |
190 const xmlChar *name, | |
191 const xmlChar *prefix, | |
192 const xmlChar *name2, | |
193 const xmlChar *prefix2); | |
194 XMLPUBFUN void * XMLCALL | |
195 xmlHashQLookup3 (xmlHashTablePtr table, | |
196 const xmlChar *name, | |
197 const xmlChar *prefix, | |
198 const xmlChar *name2, | |
199 const xmlChar *prefix2, | |
200 const xmlChar *name3, | |
201 const xmlChar *prefix3); | |
202 | |
203 /* | |
204 * Helpers. | |
205 */ | |
206 XMLPUBFUN xmlHashTablePtr XMLCALL | |
207 xmlHashCopy (xmlHashTablePtr table, | |
208 xmlHashCopier f); | |
209 XMLPUBFUN int XMLCALL | |
210 xmlHashSize (xmlHashTablePtr table); | |
211 XMLPUBFUN void XMLCALL | |
212 xmlHashScan (xmlHashTablePtr table, | |
213 xmlHashScanner f, | |
214 void *data); | |
215 XMLPUBFUN void XMLCALL | |
216 xmlHashScan3 (xmlHashTablePtr table, | |
217 const xmlChar *name, | |
218 const xmlChar *name2, | |
219 const xmlChar *name3, | |
220 xmlHashScanner f, | |
221 void *data); | |
222 XMLPUBFUN void XMLCALL | |
223 xmlHashScanFull (xmlHashTablePtr table, | |
224 xmlHashScannerFull f, | |
225 void *data); | |
226 XMLPUBFUN void XMLCALL | |
227 xmlHashScanFull3(xmlHashTablePtr table, | |
228 const xmlChar *name, | |
229 const xmlChar *name2, | |
230 const xmlChar *name3, | |
231 xmlHashScannerFull f, | |
232 void *data); | |
233 #ifdef __cplusplus | |
234 } | |
235 #endif | |
236 #endif /* ! __XML_HASH_H__ */ |