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