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