⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hash.h

📁 下载来的一个看图软件的源代码
💻 H
字号:
/* * hash.h: chained hash tables * * Copyright (C) 2000 Bjorn Reese and Daniel Veillard. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. * * Author: bjorn.reese@systematic.dk */#ifndef __XML_HASH_H__#define __XML_HASH_H__#include <libxml/parser.h>#ifdef __cplusplusextern "C" {#endif/* * The hash table. */typedef struct _xmlHashTable xmlHashTable;typedef xmlHashTable *xmlHashTablePtr;/* * 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. */xmlHashTablePtr		xmlHashCreate	(int size);void			xmlHashFree	(xmlHashTablePtr table,					 xmlHashDeallocator f);/* * Add a new entry to the hash table. */int			xmlHashAddEntry	(xmlHashTablePtr table,		                         const xmlChar *name,		                         void *userdata);int			xmlHashUpdateEntry(xmlHashTablePtr table,		                         const xmlChar *name,		                         void *userdata,					 xmlHashDeallocator f);int			xmlHashAddEntry2(xmlHashTablePtr table,		                         const xmlChar *name,		                         const xmlChar *name2,		                         void *userdata);int			xmlHashUpdateEntry2(xmlHashTablePtr table,		                         const xmlChar *name,		                         const xmlChar *name2,		                         void *userdata,					 xmlHashDeallocator f);int			xmlHashAddEntry3(xmlHashTablePtr table,		                         const xmlChar *name,		                         const xmlChar *name2,		                         const xmlChar *name3,		                         void *userdata);int			xmlHashUpdateEntry3(xmlHashTablePtr table,		                         const xmlChar *name,		                         const xmlChar *name2,		                         const xmlChar *name3,		                         void *userdata,					 xmlHashDeallocator f);/* * Remove an entry from the hash table. */int     xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,                           xmlHashDeallocator f);int     xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,                            const xmlChar *name2, xmlHashDeallocator f);int     xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,                            const xmlChar *name2, const xmlChar *name3,                            xmlHashDeallocator f);/* * Retrieve the userdata. */void *			xmlHashLookup	(xmlHashTablePtr table,					 const xmlChar *name);void *			xmlHashLookup2	(xmlHashTablePtr table,					 const xmlChar *name,					 const xmlChar *name2);void *			xmlHashLookup3	(xmlHashTablePtr table,					 const xmlChar *name,					 const xmlChar *name2,					 const xmlChar *name3);/* * Helpers. */xmlHashTablePtr		xmlHashCopy	(xmlHashTablePtr table,					 xmlHashCopier f);int			xmlHashSize	(xmlHashTablePtr table);void			xmlHashScan	(xmlHashTablePtr table,					 xmlHashScanner f,					 void *data);void			xmlHashScan3	(xmlHashTablePtr table,					 const xmlChar *name,					 const xmlChar *name2,					 const xmlChar *name3,					 xmlHashScanner f,					 void *data);void			xmlHashScanFull	(xmlHashTablePtr table,					 xmlHashScannerFull f,					 void *data);void			xmlHashScanFull3(xmlHashTablePtr table,					 const xmlChar *name,					 const xmlChar *name2,					 const xmlChar *name3,					 xmlHashScannerFull f,					 void *data);#ifdef __cplusplus}#endif#endif /* ! __XML_HASH_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -