18 /* SimpleHash *********************************************************/
20 struct RuntimeHash * noargallocateRuntimeHash();
21 struct RuntimeHash * allocateRuntimeHash(int size);
22 void RuntimeHashaddChild(struct RuntimeHash *thisvar, struct RuntimeHash * child);
23 void freeRuntimeHash(struct RuntimeHash *);
25 void RuntimeHashrehash(struct RuntimeHash * thisvar);
26 int RuntimeHashadd(struct RuntimeHash *, int key, int data);
27 int RuntimeHashremovekey(struct RuntimeHash *,int key);
28 int RuntimeHashremove(struct RuntimeHash *,int key, int data);
29 bool RuntimeHashcontainskey(struct RuntimeHash *,int key);
30 bool RuntimeHashcontainskeydata(struct RuntimeHash *,int key, int data);
31 int RuntimeHashget(struct RuntimeHash *,int key, int* data);
32 void RuntimeHashaddParent(struct RuntimeHash *,struct RuntimeHash* parent);
33 int RuntimeHashfirstkey(struct RuntimeHash *);
34 struct RuntimeIterator* RuntimeHashcreateiterator(struct RuntimeHash *);
35 void RuntimeHashiterator(struct RuntimeHash *, struct RuntimeIterator * it);
36 int RuntimeHashcount(struct RuntimeHash *, int key);
37 struct RuntimeHash * RuntimeHashimageSet(struct RuntimeHash *, int key);
42 struct RuntimeNode **bucket;
43 struct RuntimeNode *listhead;
44 struct RuntimeNode *listtail;
47 inline int RuntimeHashcountset(struct RuntimeHash * thisvar);
49 /* RuntimeHashException *************************************************/
52 /* RuntimeIterator *****************************************************/
56 struct RuntimeNode *next;
57 struct RuntimeNode *lnext;
58 struct RuntimeNode *lprev;
63 struct RuntimeIterator {
64 struct RuntimeNode *cur;
67 inline struct RuntimeIterator * noargallocateRuntimeIterator();
69 inline struct RuntimeIterator * allocateRuntimeIterator(struct RuntimeNode *start);
71 inline int RunhasNext(struct RuntimeIterator *thisvar);
73 inline int Runnext(struct RuntimeIterator *thisvar);
75 inline int Runkey(struct RuntimeIterator *thisvar);