1 * Summary: Chained hash tables
2 * Description: This module implements the hash table support used in
3 * various places in the library.
5 * Copy: See Copyright for the status of this software.
7 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
9 /if not defined(XML_HASH_H__)
12 /include "libxmlrpg/xmlTypesC"
17 d s * based(######typedef######)
19 /include "libxmlrpg/xmlversion"
20 /include "libxmlrpg/parser"
21 /include "libxmlrpg/dict"
26 * @payload: the data in the hash
27 * @name: the name associated
29 * Callback to free data from a hash.
31 d xmlHashDeallocator...
32 d s * based(######typedef######)
36 * @payload: the data in the hash
37 * @name: the name associated
39 * Callback to copy data from a hash.
41 * Returns a copy of the data or NULL in case of error.
43 d xmlHashCopier s * based(######typedef######)
47 * @payload: the data in the hash
48 * @data: extra scannner data
49 * @name: the name associated
51 * Callback when scanning data in a hash with the simple scanner.
53 d xmlHashScanner s * based(######typedef######)
57 * @payload: the data in the hash
58 * @data: extra scannner data
59 * @name: the name associated
60 * @name2: the second name associated
61 * @name3: the third name associated
63 * Callback when scanning data in a hash with the full scanner.
65 d xmlHashScannerFull...
66 d s * based(######typedef######)
69 * Constructor and destructor.
71 d xmlHashCreate pr extproc('xmlHashCreate')
72 d like(xmlHashTablePtr)
73 d size value like(xmlCint)
75 d xmlHashCreateDict...
76 d pr extproc('xmlHashCreateDict')
77 d like(xmlHashTablePtr)
78 d size value like(xmlCint)
79 d dict value like(xmlDictPtr)
81 d xmlHashFree pr extproc('xmlHashFree')
82 d table value like(xmlHashTablePtr)
83 d f value like(xmlHashDeallocator)
85 * Add a new entry to the hash table.
88 d pr extproc('xmlHashAddEntry')
90 d table value like(xmlHashTablePtr)
91 d name * value options(*string) const xmlChar *
92 d userdata * value options(*string) void *
94 d xmlHashUpdateEntry...
95 d pr extproc('xmlHashUpdateEntry')
97 d table value like(xmlHashTablePtr)
98 d name * value options(*string) const xmlChar *
99 d userdata * value options(*string) void *
100 d f value like(xmlHashDeallocator)
102 d xmlHashAddEntry2...
103 d pr extproc('xmlHashAddEntry2')
105 d table value like(xmlHashTablePtr)
106 d name * value options(*string) const xmlChar *
107 d name2 * value options(*string) const xmlChar *
108 d userdata * value options(*string) void *
110 d xmlHashUpdateEntry2...
111 d pr extproc('xmlHashUpdateEntry2')
113 d table value like(xmlHashTablePtr)
114 d name * value options(*string) const xmlChar *
115 d name2 * value options(*string) const xmlChar *
116 d userdata * value options(*string) void *
117 d f value like(xmlHashDeallocator)
119 d xmlHashAddEntry3...
120 d pr extproc('xmlHashAddEntry3')
122 d table value like(xmlHashTablePtr)
123 d name * value options(*string) const xmlChar *
124 d name2 * value options(*string) const xmlChar *
125 d name3 * value options(*string) const xmlChar *
126 d userdata * value options(*string) void *
128 d xmlHashUpdateEntry3...
129 d pr extproc('xmlHashUpdateEntry3')
131 d table value like(xmlHashTablePtr)
132 d name * value options(*string) const xmlChar *
133 d name2 * value options(*string) const xmlChar *
134 d name3 * value options(*string) const xmlChar *
135 d userdata * value options(*string) void *
136 d f value like(xmlHashDeallocator)
138 * Remove an entry from the hash table.
140 d xmlHashRemoveEntry...
141 d pr extproc('xmlHashRemoveEntry')
143 d table value like(xmlHashTablePtr)
144 d name * value options(*string) const xmlChar *
145 d f value like(xmlHashDeallocator)
147 d xmlHashRemoveEntry2...
148 d pr extproc('xmlHashRemoveEntry2')
150 d table value like(xmlHashTablePtr)
151 d name * value options(*string) const xmlChar *
152 d name2 * value options(*string) const xmlChar *
153 d f value like(xmlHashDeallocator)
155 d xmlHashRemoveEntry3...
156 d pr extproc('xmlHashRemoveEntry3')
158 d table value like(xmlHashTablePtr)
159 d name * value options(*string) const xmlChar *
160 d name2 * value options(*string) const xmlChar *
161 d name3 * value options(*string) const xmlChar *
162 d f value like(xmlHashDeallocator)
164 * Retrieve the userdata.
166 d xmlHashLookup pr * extproc('xmlHashLookup') void *
167 d table value like(xmlHashTablePtr)
168 d name * value options(*string) const xmlChar *
170 d xmlHashLookup2 pr * extproc('xmlHashLookup2') void *
171 d table value like(xmlHashTablePtr)
172 d name * value options(*string) const xmlChar *
173 d name2 * value options(*string) const xmlChar *
175 d xmlHashLookup3 pr * extproc('xmlHashLookup3') void *
176 d table value like(xmlHashTablePtr)
177 d name * value options(*string) const xmlChar *
178 d name2 * value options(*string) const xmlChar *
179 d name3 * value options(*string) const xmlChar *
181 d xmlHashQLookup pr * extproc('xmlHashQLookup') void *
182 d table value like(xmlHashTablePtr)
183 d name * value options(*string) const xmlChar *
184 d prefix * value options(*string) const xmlChar *
187 d pr * extproc('xmlHashQLookup2') void *
188 d table value like(xmlHashTablePtr)
189 d name * value options(*string) const xmlChar *
190 d prefix * value options(*string) const xmlChar *
191 d name2 * value options(*string) const xmlChar *
192 d prefix2 * value options(*string) const xmlChar *
195 d pr * extproc('xmlHashQLookup3') void *
196 d table value like(xmlHashTablePtr)
197 d name * value options(*string) const xmlChar *
198 d prefix * value options(*string) const xmlChar *
199 d name2 * value options(*string) const xmlChar *
200 d prefix2 * value options(*string) const xmlChar *
201 d name3 * value options(*string) const xmlChar *
202 d prefix3 * value options(*string) const xmlChar *
206 d xmlHashCopy pr extproc('xmlHashCopy')
207 d like(xmlHashTablePtr)
208 d table value like(xmlHashTablePtr)
209 d f value like(xmlHashCopier)
211 d xmlHashSize pr extproc('xmlHashSize')
213 d table value like(xmlHashTablePtr)
215 d xmlHashScan pr extproc('xmlHashScan')
216 d table value like(xmlHashTablePtr)
217 d f value like(xmlHashScanner)
218 d data * value options(*string) void *
220 d xmlHashScan3 pr extproc('xmlHashScan3')
221 d table value like(xmlHashTablePtr)
222 d name * value options(*string) const xmlChar *
223 d name2 * value options(*string) const xmlChar *
224 d name3 * value options(*string) const xmlChar *
225 d f value like(xmlHashScanner)
226 d data * value options(*string) void *
229 d pr extproc('xmlHashScanFull')
230 d table value like(xmlHashTablePtr)
231 d f value like(xmlHashScannerFull)
232 d data * value options(*string) void *
234 d xmlHashScanFull3...
235 d pr extproc('xmlHashScanFull3')
236 d table value like(xmlHashTablePtr)
237 d name * value options(*string) const xmlChar *
238 d name2 * value options(*string) const xmlChar *
239 d name3 * value options(*string) const xmlChar *
240 d f value like(xmlHashScannerFull)
241 d data * value options(*string) void *