1 /*
2  * Ostatnia aktualizacja:
3  *
4  * - $Id: hashtable.h,v 1.3 2002/12/14 19:36:11 mati Exp $
5  *
6  */
7 
8 #include <stddef.h>
9 
10 #ifdef XML_UNICODE
11 
12 #ifdef XML_UNICODE_WCHAR_T
13 typedef const wchar_t *KEY;
14 #else /* not XML_UNICODE_WCHAR_T */
15 typedef const unsigned short *KEY;
16 #endif /* not XML_UNICODE_WCHAR_T */
17 
18 #else /* not XML_UNICODE */
19 
20 typedef const char *KEY;
21 
22 #endif /* not XML_UNICODE */
23 
24 typedef struct {
25   KEY name;
26 } NAMED;
27 
28 typedef struct {
29   NAMED **v;
30   size_t size;
31   size_t used;
32   size_t usedLim;
33 } HASH_TABLE;
34 
35 NAMED *lookup(HASH_TABLE *table, KEY name, size_t createSize);
36 void hashTableInit(HASH_TABLE *);
37 void hashTableDestroy(HASH_TABLE *);
38 
39 typedef struct {
40   NAMED **p;
41   NAMED **end;
42 } HASH_TABLE_ITER;
43 
44 void hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *);
45 NAMED *hashTableIterNext(HASH_TABLE_ITER *);
46