Main Page | Class List | File List | Class Members | File Members

hash.h

00001 /* 00002 GOCR Copyright (C) 2000 Joerg Schulenburg 00003 GOCR API Copyright (C) 2001 Bruno Barberi Gnecco 00004 00005 This program is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU General Public License 00007 as published by the Free Software Foundation; either version 2 00008 of the License, or (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 00019 */ 00020 00021 #ifndef _GOCR_HASH_H 00022 #define _GOCR_HASH_H 00023 00024 struct hashitem { 00025 char *key; 00026 void *data; 00027 #ifdef CHAIN 00028 struct hashitem *next; 00029 #endif 00030 }; 00031 typedef struct hashitem hashItem; 00032 00033 struct hashtable { 00034 int size; 00035 hashItem **item; 00036 int (* hash_func)(char *); 00037 }; 00038 typedef struct hashtable HashTable; 00039 00040 extern void *hash_data ( HashTable *t, char *key ); 00041 extern void *hash_del ( HashTable *t, char *key ); 00042 extern int hash_free ( HashTable *t, void (*free_func)(void *) ); 00043 extern int hash_init ( HashTable *t, int size, int (*hash_func)(char *) ); 00044 extern int hash_insert ( HashTable *t, char *key, void *data ); 00045 extern char *hash_key ( HashTable *t, void *data ); 00046 00047 #endif

Generated on Thu Jul 29 16:43:27 2004 for GOCR API by doxygen 1.3.7