Main Page   Compound List   File List   Compound 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 at Thu Mar 1 10:05:32 2001 for GOCR API by doxygen1.2.2 written by Dimitri van Heesch, © 1997-2000