]>
Commit | Line | Data |
---|---|---|
468ae12b | 1 | #define DEFAULT_HASH_SIZE 7951 |
e1381638 | 2 | extern "C" { |
26ac0430 AJ |
3 | typedef unsigned int HASHHASH(const void *, unsigned int); |
4 | struct _hash_link { | |
5 | char *key; | |
6 | struct _hash_link *next; | |
7 | void *item; | |
8 | }; | |
9 | typedef int HASHCMP(const void *, const void *); | |
14c63c25 | 10 | |
26ac0430 | 11 | typedef struct _hash_link hash_link; |
14c63c25 | 12 | |
26ac0430 AJ |
13 | struct _hash_table { |
14 | int valid; | |
15 | hash_link **buckets; | |
16 | HASHCMP *cmp; | |
17 | HASHHASH *hash; | |
18 | unsigned int size; | |
19 | unsigned int current_slot; | |
20 | hash_link *current_ptr; | |
21 | }; | |
22 | typedef struct _hash_table hash_table; | |
14c63c25 | 23 | |
26ac0430 AJ |
24 | extern int hash_links_allocated; |
25 | /* AYJ: defined by globals.h */ | |
cc192b50 | 26 | //extern int store_hash_buckets; /* 0 */ |
27 | //extern hash_table *store_table; /* NULL */ | |
26ac0430 AJ |
28 | extern hash_table *hash_create(HASHCMP *, int, HASHHASH *); |
29 | extern void hash_insert(hash_table *, const char *, void *); | |
30 | extern int hash_delete(hash_table *, const char *); | |
31 | int hash_delete_link(hash_table *, hash_link *); | |
32 | int hash_unlink(hash_table *, hash_link *, int); | |
33 | void hash_join(hash_table *, hash_link *); | |
34 | int hash_remove_link(hash_table *, hash_link *); | |
35 | hash_link *hash_lookup(hash_table *, const void *); | |
36 | hash_link *hash_first(hash_table *); | |
37 | hash_link *hash_next(hash_table *); | |
38 | hash_link *hash_get_bucket(hash_table *, unsigned int); | |
39 | void hashFreeMemory(hash_table *); | |
40 | HASHHASH hash_string; | |
41 | HASHHASH hash_url; | |
42 | HASHHASH hash4; | |
e9505fad | 43 | |
44 | } |