1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/hash.e,v 1.5 2011/05/16 16:21:57 william Exp $ 19 */ 20 21#ifndef _HASH_E_ 22#define _HASH_E_ 23 24#include "list.e" 25 26#define TG_HASH_SIZE_SMALL 251 27#define TG_HASH_SIZE_MEDIUM 509 28#define TG_HASH_SIZE_LARGE 2039 29 30typedef struct tagTgHash { 31 int num_buckets; 32 CVList *buckets; 33} TgHash; 34 35#ifdef _INCLUDE_FROM_HASH_C_ 36#undef extern 37#define extern 38#endif /*_INCLUDE_FROM_HASH_C_*/ 39 40extern void CleanUpHash ARGS_DECL((TgHash*)); 41extern int InitHash ARGS_DECL((TgHash*, int which)); 42 43extern int HashStoreInt ARGS_DECL((TgHash*, char *key, int key_sz, 44 int value)); 45extern int HashStoreStr ARGS_DECL((TgHash*, char *key, int key_sz, 46 char *value)); 47extern int HashLookUpInt ARGS_DECL((TgHash*, char *key, int key_sz, 48 int *pn_value_return)); 49extern char *HashLookUpStr ARGS_DECL((TgHash*, char *key, int key_sz)); 50 51#ifdef _INCLUDE_FROM_HASH_C_ 52#undef extern 53#ifndef _NO_RECURSIVE_EXTERN 54#define extern extern 55#endif /* ~_NO_RECURSIVE_EXTERN */ 56#endif /*_INCLUDE_FROM_HASH_C_*/ 57 58#endif /*_HASH_E_*/ 59