]> git.ipfire.org Git - thirdparty/squid.git/blame - test-suite/hash.h
SourceFormat: enforcement
[thirdparty/squid.git] / test-suite / hash.h
CommitLineData
468ae12b 1#define DEFAULT_HASH_SIZE 7951
e1381638 2extern "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}