1
//========================================================================
5
// Copyright 2001-2003 Glyph & Cog, LLC
7
//========================================================================
12
#ifdef USE_GCC_PRAGMAS
22
//------------------------------------------------------------------------
27
GooHash(GBool deleteKeysA = gFalse);
29
void add(GooString *key, void *val);
30
void add(GooString *key, int val);
31
void replace(GooString *key, void *val);
32
void replace(GooString *key, int val);
33
void *lookup(GooString *key);
34
int lookupInt(GooString *key);
35
void *lookup(char *key);
36
int lookupInt(char *key);
37
void *remove(GooString *key);
38
int removeInt(GooString *key);
39
void *remove(char *key);
40
int removeInt(char *key);
41
int getLength() { return len; }
42
void startIter(GooHashIter **iter);
43
GBool getNext(GooHashIter **iter, GooString **key, void **val);
44
GBool getNext(GooHashIter **iter, GooString **key, int *val);
45
void killIter(GooHashIter **iter);
50
GooHashBucket *find(GooString *key, int *h);
51
GooHashBucket *find(char *key, int *h);
52
int hash(GooString *key);
55
GBool deleteKeys; // set if key strings should be deleted
56
int size; // number of buckets
57
int len; // number of entries
61
#define deleteGooHash(hash, T) \
63
GooHash *_hash = (hash); \
68
_hash->startIter(&_iter); \
69
while (_hash->getNext(&_iter, &_key, &_p)) { \