00001
00002
00003
00004
00005
00006
00007
00008 #ifndef HASH_TABLE_H
00009 #define HASH_TABLE_H
00010
00042 typedef unsigned (*hash_func_t) ( const char *key );
00043
00050 struct hash_table * hash_table_create( int buckets, hash_func_t func );
00051
00057 void hash_table_delete( struct hash_table *h );
00058
00064 int hash_table_size ( struct hash_table *h );
00065
00076 int hash_table_insert( struct hash_table *h, const char *key, const void *value );
00077
00084 void * hash_table_lookup( struct hash_table *h, const char *key );
00085
00092 void * hash_table_remove( struct hash_table *h, const char *key );
00093
00101 void hash_table_firstkey( struct hash_table *h );
00102
00111 int hash_table_nextkey( struct hash_table *h, char **key, void **value );
00112
00118 unsigned hash_string( const char *s );
00119
00120 #endif