about to make lots of changes to system, just committing this stable compilation...
[IRC.git] / Robust / src / Runtime / SimpleHash.h
index edb1f66aa2693bcab952292aa3cb844779531196..c2a2679a69c68bfed29247451cf3a7e35e4e8588 100755 (executable)
 
 /* SimpleHash *********************************************************/
 
-struct SimpleHash * noargallocateSimpleHash();
-struct SimpleHash * allocateSimpleHash(int size);
-void SimpleHashaddChild(struct SimpleHash *thisvar, struct SimpleHash * child);
-void freeSimpleHash(struct SimpleHash *);
-
-
-int SimpleHashadd(struct SimpleHash *, int key, int data);
-int SimpleHashremove(struct SimpleHash *,int key, int data);
-bool SimpleHashcontainskey(struct SimpleHash *,int key);
-bool SimpleHashcontainskeydata(struct SimpleHash *,int key, int data);
-int SimpleHashget(struct SimpleHash *,int key, int* data);
-int SimpleHashcountdata(struct SimpleHash *,int data);
-void SimpleHashaddParent(struct SimpleHash *,struct SimpleHash* parent);
-int SimpleHashfirstkey(struct SimpleHash *);
-struct SimpleIterator* SimpleHashcreateiterator(struct SimpleHash *);
-void SimpleHashiterator(struct SimpleHash *, struct SimpleIterator * it);
-int SimpleHashcount(struct SimpleHash *, int key);
-void SimpleHashaddAll(struct SimpleHash *, struct SimpleHash * set);
-struct SimpleHash * SimpleHashimageSet(struct SimpleHash *, int key);
-
-struct SimpleHash {
-    int numelements;
-    int size;
-    struct SimpleNode **bucket;
-    struct ArraySimple *listhead;
-    struct ArraySimple *listtail;
-    int tailindex;
+struct RuntimeHash * noargallocateRuntimeHash();
+struct RuntimeHash * allocateRuntimeHash(int size);
+void RuntimeHashaddChild(struct RuntimeHash *thisvar, struct RuntimeHash * child);
+void freeRuntimeHash(struct RuntimeHash *);
+
+void RuntimeHashrehash(struct RuntimeHash * thisvar);
+int RuntimeHashadd(struct RuntimeHash *, int key, int data);
+#ifdef MULTICORE
+int RuntimeHashadd_I(struct RuntimeHash *, int key, int data);
+#endif
+int RuntimeHashremovekey(struct RuntimeHash *,int key);
+int RuntimeHashremove(struct RuntimeHash *,int key, int data);
+bool RuntimeHashcontainskey(struct RuntimeHash *,int key);
+bool RuntimeHashcontainskeydata(struct RuntimeHash *,int key, int data);
+int RuntimeHashget(struct RuntimeHash *,int key, int* data);
+void RuntimeHashaddParent(struct RuntimeHash *,struct RuntimeHash* parent);
+int RuntimeHashfirstkey(struct RuntimeHash *);
+struct RuntimeIterator* RuntimeHashcreateiterator(struct RuntimeHash *);
+void RuntimeHashiterator(struct RuntimeHash *, struct RuntimeIterator * it);
+int RuntimeHashcount(struct RuntimeHash *, int key);
+struct RuntimeHash * RuntimeHashimageSet(struct RuntimeHash *, int key);
+
+struct RuntimeHash {
+  int numelements;
+  int size;
+  struct RuntimeNode **bucket;
+  struct RuntimeNode *listhead;
+  struct RuntimeNode *listtail;
 };
 
-inline int SimpleHashcountset(struct SimpleHash * thisvar);
+inline int RuntimeHashcountset(struct RuntimeHash * thisvar);
 
-/* SimpleHashException  *************************************************/
+/* RuntimeHashException  *************************************************/
 
 
-/* SimpleIterator *****************************************************/
+/* RuntimeIterator *****************************************************/
 #define ARRAYSIZE 100
 
-struct SimpleNode {
-  struct SimpleNode *next;
+struct RuntimeNode {
+  struct RuntimeNode *next;
+  struct RuntimeNode *lnext;
+  struct RuntimeNode *lprev;
   int data;
   int key;
-  int inuse;
-};
-
-struct ArraySimple {
-  struct SimpleNode nodes[ARRAYSIZE];
-  struct ArraySimple * nextarray;
 };
 
-
-struct SimpleIterator {
-  struct ArraySimple *cur, *tail;
-  int index,tailindex;
+struct RuntimeIterator {
+  struct RuntimeNode *cur;
 };
 
-inline struct SimpleIterator * noargallocateSimpleIterator();
+inline struct RuntimeIterator * noargallocateRuntimeIterator();
 
-inline struct SimpleIterator * allocateSimpleIterator(struct ArraySimple *start, struct ArraySimple *tl, int tlindex);
+inline struct RuntimeIterator * allocateRuntimeIterator(struct RuntimeNode *start);
 
-inline int hasNext(struct SimpleIterator *thisvar);
+inline int RunhasNext(struct RuntimeIterator *thisvar);
 
-inline int next(struct SimpleIterator *thisvar);
+inline int Runnext(struct RuntimeIterator *thisvar);
 
-inline int key(struct SimpleIterator *thisvar);
+inline int Runkey(struct RuntimeIterator *thisvar);
 
 #endif