Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
hash.h
Package: Client.rar [view]
Upload User: szjkjd
Upload Date: 2022-06-27
Package Size: 8968k
Code Size: 6k
Category:
Browser Client
Development Platform:
Visual C++
- /*
- * 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: Bjorn Reese <bjorn.reese@systematic.dk>
- */
- #ifndef __XML_HASH_H__
- #define __XML_HASH_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * The hash table.
- */
- typedef struct _xmlHashTable xmlHashTable;
- typedef xmlHashTable *xmlHashTablePtr;
- #ifdef __cplusplus
- }
- #endif
- #include <libxml/xmlversion.h>
- #include <libxml/parser.h>
- #include <libxml/dict.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Recent version of gcc produce a warning when a function pointer is assigned
- * to an object pointer, or vice versa. The following macro is a dirty hack
- * to allow suppression of the warning. If your architecture has function
- * pointers which are a different size than a void pointer, there may be some
- * serious trouble within the library.
- */
- /**
- * XML_CAST_FPTR:
- * @fptr: pointer to a function
- *
- * Macro to do a casting from an object pointer to a
- * function pointer without encountering a warning from
- * gcc
- *
- * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr))
- * This macro violated ISO C aliasing rules (gcc4 on s390 broke)
- * so it is disabled now
- */
- #define XML_CAST_FPTR(fptr) fptr
- /*
- * function types:
- */
- /**
- * xmlHashDeallocator:
- * @payload: the data in the hash
- * @name: the name associated
- *
- * Callback to free data from a hash.
- */
- typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
- /**
- * 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.
- */
- typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
- /**
- * 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.
- */
- typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
- /**
- * 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.
- */
- typedef void (*xmlHashScannerFull)(void *payload, void *data,
- const xmlChar *name, const xmlChar *name2,
- const xmlChar *name3);
- /*
- * Constructor and destructor.
- */
- XMLPUBFUN xmlHashTablePtr XMLCALL
- xmlHashCreate (int size);
- XMLPUBFUN xmlHashTablePtr XMLCALL
- xmlHashCreateDict(int size,
- xmlDictPtr dict);
- XMLPUBFUN void XMLCALL
- xmlHashFree (xmlHashTablePtr table,
- xmlHashDeallocator f);
- /*
- * Add a new entry to the hash table.
- */
- XMLPUBFUN int XMLCALL
- xmlHashAddEntry (xmlHashTablePtr table,
- const xmlChar *name,
- void *userdata);
- XMLPUBFUN int XMLCALL
- xmlHashUpdateEntry(xmlHashTablePtr table,
- const xmlChar *name,
- void *userdata,
- xmlHashDeallocator f);
- XMLPUBFUN int XMLCALL
- xmlHashAddEntry2(xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- void *userdata);
- XMLPUBFUN int XMLCALL
- xmlHashUpdateEntry2(xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- void *userdata,
- xmlHashDeallocator f);
- XMLPUBFUN int XMLCALL
- xmlHashAddEntry3(xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- const xmlChar *name3,
- void *userdata);
- XMLPUBFUN int XMLCALL
- xmlHashUpdateEntry3(xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- const xmlChar *name3,
- void *userdata,
- xmlHashDeallocator f);
- /*
- * Remove an entry from the hash table.
- */
- XMLPUBFUN int XMLCALL
- xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
- xmlHashDeallocator f);
- XMLPUBFUN int XMLCALL
- xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
- const xmlChar *name2, xmlHashDeallocator f);
- XMLPUBFUN int XMLCALL
- xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
- const xmlChar *name2, const xmlChar *name3,
- xmlHashDeallocator f);
- /*
- * Retrieve the userdata.
- */
- XMLPUBFUN void * XMLCALL
- xmlHashLookup (xmlHashTablePtr table,
- const xmlChar *name);
- XMLPUBFUN void * XMLCALL
- xmlHashLookup2 (xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2);
- XMLPUBFUN void * XMLCALL
- xmlHashLookup3 (xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- const xmlChar *name3);
- XMLPUBFUN void * XMLCALL
- xmlHashQLookup (xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *prefix);
- XMLPUBFUN void * XMLCALL
- xmlHashQLookup2 (xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *prefix,
- const xmlChar *name2,
- const xmlChar *prefix2);
- XMLPUBFUN void * XMLCALL
- xmlHashQLookup3 (xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *prefix,
- const xmlChar *name2,
- const xmlChar *prefix2,
- const xmlChar *name3,
- const xmlChar *prefix3);
- /*
- * Helpers.
- */
- XMLPUBFUN xmlHashTablePtr XMLCALL
- xmlHashCopy (xmlHashTablePtr table,
- xmlHashCopier f);
- XMLPUBFUN int XMLCALL
- xmlHashSize (xmlHashTablePtr table);
- XMLPUBFUN void XMLCALL
- xmlHashScan (xmlHashTablePtr table,
- xmlHashScanner f,
- void *data);
- XMLPUBFUN void XMLCALL
- xmlHashScan3 (xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- const xmlChar *name3,
- xmlHashScanner f,
- void *data);
- XMLPUBFUN void XMLCALL
- xmlHashScanFull (xmlHashTablePtr table,
- xmlHashScannerFull f,
- void *data);
- XMLPUBFUN void XMLCALL
- xmlHashScanFull3(xmlHashTablePtr table,
- const xmlChar *name,
- const xmlChar *name2,
- const xmlChar *name3,
- xmlHashScannerFull f,
- void *data);
- #ifdef __cplusplus
- }
- #endif
- #endif /* ! __XML_HASH_H__ */