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 *);
26 int RuntimeHashadd(struct RuntimeHash *, int key, int data);
27 int RuntimeHashremove(struct RuntimeHash *,int key, int data);
28 bool RuntimeHashcontainskey(struct RuntimeHash *,int key);
29 bool RuntimeHashcontainskeydata(struct RuntimeHash *,int key, int data);
30 int RuntimeHashget(struct RuntimeHash *,int key, int* data);
31 int RuntimeHashcountdata(struct RuntimeHash *,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 void RuntimeHashaddAll(struct RuntimeHash *, struct RuntimeHash * set);
38 struct RuntimeHash * RuntimeHashimageSet(struct RuntimeHash *, int key);
43 struct RuntimeNode **bucket;
44 struct ArrayRuntime *listhead;
45 struct ArrayRuntime *listtail;
49 inline int RuntimeHashcountset(struct RuntimeHash * thisvar);
51 /* RuntimeHashException *************************************************/
54 /* RuntimeIterator *****************************************************/
58 struct RuntimeNode *next;
65 struct RuntimeNode nodes[ARRAYSIZE];
66 struct ArrayRuntime * nextarray;
70 struct RuntimeIterator {
71 struct ArrayRuntime *cur, *tail;
75 inline struct RuntimeIterator * noargallocateRuntimeIterator();
77 inline struct RuntimeIterator * allocateRuntimeIterator(struct ArrayRuntime *start, struct ArrayRuntime *tl, int tlindex);
79 inline int RunhasNext(struct RuntimeIterator *thisvar);
81 inline int Runnext(struct RuntimeIterator *thisvar);
83 inline int Runkey(struct RuntimeIterator *thisvar);