xref: /aosp_15_r20/external/libxml2/os400/libxmlrpg/hash.rpgle (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker      * Summary: Chained hash tables
2*7c568831SAndroid Build Coastguard Worker      * Description: This module implements the hash table support used in
3*7c568831SAndroid Build Coastguard Worker      *              various places in the library.
4*7c568831SAndroid Build Coastguard Worker      *
5*7c568831SAndroid Build Coastguard Worker      * Copy: See Copyright for the status of this software.
6*7c568831SAndroid Build Coastguard Worker      *
7*7c568831SAndroid Build Coastguard Worker      * Author: Patrick Monnerat <[email protected]>, DATASPHERE S.A.
8*7c568831SAndroid Build Coastguard Worker
9*7c568831SAndroid Build Coastguard Worker      /if not defined(XML_HASH_H__)
10*7c568831SAndroid Build Coastguard Worker      /define XML_HASH_H__
11*7c568831SAndroid Build Coastguard Worker
12*7c568831SAndroid Build Coastguard Worker      /include "libxmlrpg/xmlTypesC"
13*7c568831SAndroid Build Coastguard Worker
14*7c568831SAndroid Build Coastguard Worker      * The hash table.
15*7c568831SAndroid Build Coastguard Worker
16*7c568831SAndroid Build Coastguard Worker     d xmlHashTablePtr...
17*7c568831SAndroid Build Coastguard Worker     d                 s               *   based(######typedef######)
18*7c568831SAndroid Build Coastguard Worker
19*7c568831SAndroid Build Coastguard Worker      /include "libxmlrpg/xmlversion"
20*7c568831SAndroid Build Coastguard Worker      /include "libxmlrpg/parser"
21*7c568831SAndroid Build Coastguard Worker      /include "libxmlrpg/dict"
22*7c568831SAndroid Build Coastguard Worker
23*7c568831SAndroid Build Coastguard Worker      * function types:
24*7c568831SAndroid Build Coastguard Worker
25*7c568831SAndroid Build Coastguard Worker      * xmlHashDeallocator:
26*7c568831SAndroid Build Coastguard Worker      * @payload:  the data in the hash
27*7c568831SAndroid Build Coastguard Worker      * @name:  the name associated
28*7c568831SAndroid Build Coastguard Worker      *
29*7c568831SAndroid Build Coastguard Worker      * Callback to free data from a hash.
30*7c568831SAndroid Build Coastguard Worker
31*7c568831SAndroid Build Coastguard Worker     d xmlHashDeallocator...
32*7c568831SAndroid Build Coastguard Worker     d                 s               *   based(######typedef######)
33*7c568831SAndroid Build Coastguard Worker     d                                     procptr
34*7c568831SAndroid Build Coastguard Worker
35*7c568831SAndroid Build Coastguard Worker      * xmlHashCopier:
36*7c568831SAndroid Build Coastguard Worker      * @payload:  the data in the hash
37*7c568831SAndroid Build Coastguard Worker      * @name:  the name associated
38*7c568831SAndroid Build Coastguard Worker      *
39*7c568831SAndroid Build Coastguard Worker      * Callback to copy data from a hash.
40*7c568831SAndroid Build Coastguard Worker      *
41*7c568831SAndroid Build Coastguard Worker      * Returns a copy of the data or NULL in case of error.
42*7c568831SAndroid Build Coastguard Worker
43*7c568831SAndroid Build Coastguard Worker     d xmlHashCopier   s               *   based(######typedef######)
44*7c568831SAndroid Build Coastguard Worker     d                                     procptr
45*7c568831SAndroid Build Coastguard Worker
46*7c568831SAndroid Build Coastguard Worker      * xmlHashScanner:
47*7c568831SAndroid Build Coastguard Worker      * @payload:  the data in the hash
48*7c568831SAndroid Build Coastguard Worker      * @data:  extra scannner data
49*7c568831SAndroid Build Coastguard Worker      * @name:  the name associated
50*7c568831SAndroid Build Coastguard Worker      *
51*7c568831SAndroid Build Coastguard Worker      * Callback when scanning data in a hash with the simple scanner.
52*7c568831SAndroid Build Coastguard Worker
53*7c568831SAndroid Build Coastguard Worker     d xmlHashScanner  s               *   based(######typedef######)
54*7c568831SAndroid Build Coastguard Worker     d                                     procptr
55*7c568831SAndroid Build Coastguard Worker
56*7c568831SAndroid Build Coastguard Worker      * xmlHashScannerFull:
57*7c568831SAndroid Build Coastguard Worker      * @payload:  the data in the hash
58*7c568831SAndroid Build Coastguard Worker      * @data:  extra scannner data
59*7c568831SAndroid Build Coastguard Worker      * @name:  the name associated
60*7c568831SAndroid Build Coastguard Worker      * @name2:  the second name associated
61*7c568831SAndroid Build Coastguard Worker      * @name3:  the third name associated
62*7c568831SAndroid Build Coastguard Worker      *
63*7c568831SAndroid Build Coastguard Worker      * Callback when scanning data in a hash with the full scanner.
64*7c568831SAndroid Build Coastguard Worker
65*7c568831SAndroid Build Coastguard Worker     d xmlHashScannerFull...
66*7c568831SAndroid Build Coastguard Worker     d                 s               *   based(######typedef######)
67*7c568831SAndroid Build Coastguard Worker     d                                     procptr
68*7c568831SAndroid Build Coastguard Worker
69*7c568831SAndroid Build Coastguard Worker      * Constructor and destructor.
70*7c568831SAndroid Build Coastguard Worker
71*7c568831SAndroid Build Coastguard Worker     d xmlHashCreate   pr                  extproc('xmlHashCreate')
72*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlHashTablePtr)
73*7c568831SAndroid Build Coastguard Worker     d  size                               value like(xmlCint)
74*7c568831SAndroid Build Coastguard Worker
75*7c568831SAndroid Build Coastguard Worker     d xmlHashCreateDict...
76*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashCreateDict')
77*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlHashTablePtr)
78*7c568831SAndroid Build Coastguard Worker     d  size                               value like(xmlCint)
79*7c568831SAndroid Build Coastguard Worker     d  dict                               value like(xmlDictPtr)
80*7c568831SAndroid Build Coastguard Worker
81*7c568831SAndroid Build Coastguard Worker     d xmlHashFree     pr                  extproc('xmlHashFree')
82*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
83*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
84*7c568831SAndroid Build Coastguard Worker
85*7c568831SAndroid Build Coastguard Worker      * Add a new entry to the hash table.
86*7c568831SAndroid Build Coastguard Worker
87*7c568831SAndroid Build Coastguard Worker     d xmlHashAddEntry...
88*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashAddEntry')
89*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
90*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
91*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
92*7c568831SAndroid Build Coastguard Worker     d  userdata                       *   value options(*string)               void *
93*7c568831SAndroid Build Coastguard Worker
94*7c568831SAndroid Build Coastguard Worker     d xmlHashUpdateEntry...
95*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashUpdateEntry')
96*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
97*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
98*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
99*7c568831SAndroid Build Coastguard Worker     d  userdata                       *   value options(*string)               void *
100*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
101*7c568831SAndroid Build Coastguard Worker
102*7c568831SAndroid Build Coastguard Worker     d xmlHashAddEntry2...
103*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashAddEntry2')
104*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
105*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
106*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
107*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
108*7c568831SAndroid Build Coastguard Worker     d  userdata                       *   value options(*string)               void *
109*7c568831SAndroid Build Coastguard Worker
110*7c568831SAndroid Build Coastguard Worker     d xmlHashUpdateEntry2...
111*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashUpdateEntry2')
112*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
113*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
114*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
115*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
116*7c568831SAndroid Build Coastguard Worker     d  userdata                       *   value options(*string)               void *
117*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
118*7c568831SAndroid Build Coastguard Worker
119*7c568831SAndroid Build Coastguard Worker     d xmlHashAddEntry3...
120*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashAddEntry3')
121*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
122*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
123*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
124*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
125*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
126*7c568831SAndroid Build Coastguard Worker     d  userdata                       *   value options(*string)               void *
127*7c568831SAndroid Build Coastguard Worker
128*7c568831SAndroid Build Coastguard Worker     d xmlHashUpdateEntry3...
129*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashUpdateEntry3')
130*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
131*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
132*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
133*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
134*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
135*7c568831SAndroid Build Coastguard Worker     d  userdata                       *   value options(*string)               void *
136*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
137*7c568831SAndroid Build Coastguard Worker
138*7c568831SAndroid Build Coastguard Worker      * Remove an entry from the hash table.
139*7c568831SAndroid Build Coastguard Worker
140*7c568831SAndroid Build Coastguard Worker     d xmlHashRemoveEntry...
141*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashRemoveEntry')
142*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
143*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
144*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
145*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
146*7c568831SAndroid Build Coastguard Worker
147*7c568831SAndroid Build Coastguard Worker     d xmlHashRemoveEntry2...
148*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashRemoveEntry2')
149*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
150*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
151*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
152*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
153*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
154*7c568831SAndroid Build Coastguard Worker
155*7c568831SAndroid Build Coastguard Worker     d xmlHashRemoveEntry3...
156*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashRemoveEntry3')
157*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
158*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
159*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
160*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
161*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
162*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashDeallocator)
163*7c568831SAndroid Build Coastguard Worker
164*7c568831SAndroid Build Coastguard Worker      * Retrieve the userdata.
165*7c568831SAndroid Build Coastguard Worker
166*7c568831SAndroid Build Coastguard Worker     d xmlHashLookup   pr              *   extproc('xmlHashLookup')             void *
167*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
168*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
169*7c568831SAndroid Build Coastguard Worker
170*7c568831SAndroid Build Coastguard Worker     d xmlHashLookup2  pr              *   extproc('xmlHashLookup2')            void *
171*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
172*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
173*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
174*7c568831SAndroid Build Coastguard Worker
175*7c568831SAndroid Build Coastguard Worker     d xmlHashLookup3  pr              *   extproc('xmlHashLookup3')            void *
176*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
177*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
178*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
179*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
180*7c568831SAndroid Build Coastguard Worker
181*7c568831SAndroid Build Coastguard Worker     d xmlHashQLookup  pr              *   extproc('xmlHashQLookup')            void *
182*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
183*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
184*7c568831SAndroid Build Coastguard Worker     d  prefix                         *   value options(*string)               const xmlChar *
185*7c568831SAndroid Build Coastguard Worker
186*7c568831SAndroid Build Coastguard Worker     d xmlHashQLookup2...
187*7c568831SAndroid Build Coastguard Worker     d                 pr              *   extproc('xmlHashQLookup2')           void *
188*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
189*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
190*7c568831SAndroid Build Coastguard Worker     d  prefix                         *   value options(*string)               const xmlChar *
191*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
192*7c568831SAndroid Build Coastguard Worker     d  prefix2                        *   value options(*string)               const xmlChar *
193*7c568831SAndroid Build Coastguard Worker
194*7c568831SAndroid Build Coastguard Worker     d xmlHashQLookup3...
195*7c568831SAndroid Build Coastguard Worker     d                 pr              *   extproc('xmlHashQLookup3')           void *
196*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
197*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
198*7c568831SAndroid Build Coastguard Worker     d  prefix                         *   value options(*string)               const xmlChar *
199*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
200*7c568831SAndroid Build Coastguard Worker     d  prefix2                        *   value options(*string)               const xmlChar *
201*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
202*7c568831SAndroid Build Coastguard Worker     d  prefix3                        *   value options(*string)               const xmlChar *
203*7c568831SAndroid Build Coastguard Worker
204*7c568831SAndroid Build Coastguard Worker      * Helpers.
205*7c568831SAndroid Build Coastguard Worker
206*7c568831SAndroid Build Coastguard Worker     d xmlHashCopy     pr                  extproc('xmlHashCopy')
207*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlHashTablePtr)
208*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
209*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashCopier)
210*7c568831SAndroid Build Coastguard Worker
211*7c568831SAndroid Build Coastguard Worker     d xmlHashSize     pr                  extproc('xmlHashSize')
212*7c568831SAndroid Build Coastguard Worker     d                                     like(xmlCint)
213*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
214*7c568831SAndroid Build Coastguard Worker
215*7c568831SAndroid Build Coastguard Worker     d xmlHashScan     pr                  extproc('xmlHashScan')
216*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
217*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashScanner)
218*7c568831SAndroid Build Coastguard Worker     d  data                           *   value options(*string)               void *
219*7c568831SAndroid Build Coastguard Worker
220*7c568831SAndroid Build Coastguard Worker     d xmlHashScan3    pr                  extproc('xmlHashScan3')
221*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
222*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
223*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
224*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
225*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashScanner)
226*7c568831SAndroid Build Coastguard Worker     d  data                           *   value options(*string)               void *
227*7c568831SAndroid Build Coastguard Worker
228*7c568831SAndroid Build Coastguard Worker     d xmlHashScanFull...
229*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashScanFull')
230*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
231*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashScannerFull)
232*7c568831SAndroid Build Coastguard Worker     d  data                           *   value options(*string)               void *
233*7c568831SAndroid Build Coastguard Worker
234*7c568831SAndroid Build Coastguard Worker     d xmlHashScanFull3...
235*7c568831SAndroid Build Coastguard Worker     d                 pr                  extproc('xmlHashScanFull3')
236*7c568831SAndroid Build Coastguard Worker     d  table                              value like(xmlHashTablePtr)
237*7c568831SAndroid Build Coastguard Worker     d  name                           *   value options(*string)               const xmlChar *
238*7c568831SAndroid Build Coastguard Worker     d  name2                          *   value options(*string)               const xmlChar *
239*7c568831SAndroid Build Coastguard Worker     d  name3                          *   value options(*string)               const xmlChar *
240*7c568831SAndroid Build Coastguard Worker     d  f                                  value like(xmlHashScannerFull)
241*7c568831SAndroid Build Coastguard Worker     d  data                           *   value options(*string)               void *
242*7c568831SAndroid Build Coastguard Worker
243*7c568831SAndroid Build Coastguard Worker      /endif                                                                    XML_HASH_H__
244