* Summary: Chained hash tables * Description: This module implements the hash table support used in * various places in the library. * * Copy: See Copyright for the status of this software. * * Author: Patrick Monnerat , DATASPHERE S.A. /if not defined(XML_HASH_H__) /define XML_HASH_H__ /include "libxmlrpg/xmlTypesC" * The hash table. d xmlHashTablePtr... d s * based(######typedef######) /include "libxmlrpg/xmlversion" /include "libxmlrpg/parser" /include "libxmlrpg/dict" * function types: * xmlHashDeallocator: * @payload: the data in the hash * @name: the name associated * * Callback to free data from a hash. d xmlHashDeallocator... d s * based(######typedef######) d procptr * xmlHashCopier: * @payload: the data in the hash * @name: the name associated * * Callback to copy data from a hash. * * Returns a copy of the data or NULL in case of error. d xmlHashCopier s * based(######typedef######) d procptr * xmlHashScanner: * @payload: the data in the hash * @data: extra scannner data * @name: the name associated * * Callback when scanning data in a hash with the simple scanner. d xmlHashScanner s * based(######typedef######) d procptr * xmlHashScannerFull: * @payload: the data in the hash * @data: extra scannner data * @name: the name associated * @name2: the second name associated * @name3: the third name associated * * Callback when scanning data in a hash with the full scanner. d xmlHashScannerFull... d s * based(######typedef######) d procptr * Constructor and destructor. d xmlHashCreate pr extproc('xmlHashCreate') d like(xmlHashTablePtr) d size value like(xmlCint) d xmlHashCreateDict... d pr extproc('xmlHashCreateDict') d like(xmlHashTablePtr) d size value like(xmlCint) d dict value like(xmlDictPtr) d xmlHashFree pr extproc('xmlHashFree') d table value like(xmlHashTablePtr) d f value like(xmlHashDeallocator) * Add a new entry to the hash table. d xmlHashAddEntry... d pr extproc('xmlHashAddEntry') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d userdata * value options(*string) void * d xmlHashUpdateEntry... d pr extproc('xmlHashUpdateEntry') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d userdata * value options(*string) void * d f value like(xmlHashDeallocator) d xmlHashAddEntry2... d pr extproc('xmlHashAddEntry2') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d userdata * value options(*string) void * d xmlHashUpdateEntry2... d pr extproc('xmlHashUpdateEntry2') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d userdata * value options(*string) void * d f value like(xmlHashDeallocator) d xmlHashAddEntry3... d pr extproc('xmlHashAddEntry3') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d userdata * value options(*string) void * d xmlHashUpdateEntry3... d pr extproc('xmlHashUpdateEntry3') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d userdata * value options(*string) void * d f value like(xmlHashDeallocator) * Remove an entry from the hash table. d xmlHashRemoveEntry... d pr extproc('xmlHashRemoveEntry') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d f value like(xmlHashDeallocator) d xmlHashRemoveEntry2... d pr extproc('xmlHashRemoveEntry2') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d f value like(xmlHashDeallocator) d xmlHashRemoveEntry3... d pr extproc('xmlHashRemoveEntry3') d like(xmlCint) d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d f value like(xmlHashDeallocator) * Retrieve the userdata. d xmlHashLookup pr * extproc('xmlHashLookup') void * d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d xmlHashLookup2 pr * extproc('xmlHashLookup2') void * d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d xmlHashLookup3 pr * extproc('xmlHashLookup3') void * d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d xmlHashQLookup pr * extproc('xmlHashQLookup') void * d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d prefix * value options(*string) const xmlChar * d xmlHashQLookup2... d pr * extproc('xmlHashQLookup2') void * d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d prefix * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d prefix2 * value options(*string) const xmlChar * d xmlHashQLookup3... d pr * extproc('xmlHashQLookup3') void * d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d prefix * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d prefix2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d prefix3 * value options(*string) const xmlChar * * Helpers. d xmlHashCopy pr extproc('xmlHashCopy') d like(xmlHashTablePtr) d table value like(xmlHashTablePtr) d f value like(xmlHashCopier) d xmlHashSize pr extproc('xmlHashSize') d like(xmlCint) d table value like(xmlHashTablePtr) d xmlHashScan pr extproc('xmlHashScan') d table value like(xmlHashTablePtr) d f value like(xmlHashScanner) d data * value options(*string) void * d xmlHashScan3 pr extproc('xmlHashScan3') d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d f value like(xmlHashScanner) d data * value options(*string) void * d xmlHashScanFull... d pr extproc('xmlHashScanFull') d table value like(xmlHashTablePtr) d f value like(xmlHashScannerFull) d data * value options(*string) void * d xmlHashScanFull3... d pr extproc('xmlHashScanFull3') d table value like(xmlHashTablePtr) d name * value options(*string) const xmlChar * d name2 * value options(*string) const xmlChar * d name3 * value options(*string) const xmlChar * d f value like(xmlHashScannerFull) d data * value options(*string) void * /endif XML_HASH_H__