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