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
1.2.2 written by Dimitri van Heesch,
© 1997-2000