00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _GOCR_HASH_H
00022 #define _GOCR_HASH_H
00023
00024 struct hashitem {
00025 char *key;
00026 void *data;
00027 struct hashitem *next;
00028 };
00029 typedef struct hashitem hashItem;
00030
00031 struct hashtable {
00032 int size;
00033 hashItem **item;
00034 int (* hash_func)(char *);
00035 };
00036 typedef struct hashtable HashTable;
00037
00038 extern void *hash_data ( HashTable *t, char *key );
00039 extern void *hash_del ( HashTable *t, char *key );
00040 extern int hash_free ( HashTable *t, void (*free_func)(void *) );
00041 extern int hash_init ( HashTable *t, int size, int (*hash_func)(char *) );
00042 extern int hash_insert ( HashTable *t, char *key, void *data );
00043 extern char *hash_key ( HashTable *t, void *data );
00044
00045 #endif