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