Add runtime support for STM Barrier class
[IRC.git] / Robust / src / Runtime / ObjectHash.h
index 23a05fcedcf8ebcbe871993a07163478a77ebe92..a8315a8b01f92502921eda3d63c538c24e735424 100755 (executable)
@@ -23,11 +23,14 @@ void ObjectHashaddChild(struct ObjectHash *thisvar, struct ObjectHash * child);
 void freeObjectHash(struct ObjectHash *);
 
 void ObjectHashrehash(struct ObjectHash * thisvar);
-int ObjectHashadd(struct ObjectHash *, int key, int data, int data2);
+int ObjectHashadd(struct ObjectHash *, int key, int data, int data2, int data3, int data4);
+#ifdef RAW
+int ObjectHashadd_I(struct ObjectHash *, int key, int data, int data2, int data3, int data4);
+#endif
 int ObjectHashremove(struct ObjectHash *,int key);
 bool ObjectHashcontainskey(struct ObjectHash *,int key);
 bool ObjectHashcontainskeydata(struct ObjectHash *,int key, int data);
-int ObjectHashget(struct ObjectHash *,int key, int* data, int* data2);
+int ObjectHashget(struct ObjectHash *,int key, int* data, int* data2, int * data3, int* data4);
 void ObjectHashaddParent(struct ObjectHash *,struct ObjectHash* parent);
 int ObjectHashfirstkey(struct ObjectHash *);
 struct ObjectIterator* ObjectHashcreateiterator(struct ObjectHash *);
@@ -35,11 +38,11 @@ void ObjectHashiterator(struct ObjectHash *, struct ObjectIterator * it);
 int ObjectHashcount(struct ObjectHash *, int key);
 
 struct ObjectHash {
-    int numelements;
-    int size;
-    struct ObjectNode **bucket;
-    struct ObjectNode *listhead;
-    struct ObjectNode *listtail;
+  int numelements;
+  int size;
+  struct ObjectNode **bucket;
+  struct ObjectNode *listhead;
+  struct ObjectNode *listtail;
 };
 
 inline int ObjectHashcountset(struct ObjectHash * thisvar);
@@ -53,6 +56,8 @@ struct ObjectNode {
   int key;
   int data;
   int data2;
+  int data3;
+  int data4;
 };
 
 struct ObjectIterator {
@@ -63,10 +68,16 @@ inline struct ObjectIterator * noargallocateObjectIterator();
 
 inline struct ObjectIterator * allocateObjectIterator(struct ObjectNode *start);
 
-inline int ObjasNext(struct ObjectIterator *thisvar);
+inline int ObjhasNext(struct ObjectIterator *thisvar);
 
 inline int Objnext(struct ObjectIterator *thisvar);
 
 inline int Objkey(struct ObjectIterator *thisvar);
 
+inline int Objdata(struct ObjectIterator *thisvar);
+inline int Objdata2(struct ObjectIterator *thisvar);
+inline int Objdata3(struct ObjectIterator *thisvar);
+inline int Objdata4(struct ObjectIterator *thisvar);
+
+
 #endif