Change dependences
[satune.git] / src / Collections / structs.h
index b026357c85f160505502c3981c59bebc1fd5af8d..30fc93b2eafb72ee6219b2acd63c9bdb6f70e741 100644 (file)
@@ -1,41 +1,37 @@
 #ifndef STRUCTS_H
 #define STRUCTS_H
-#include "vector.h"
+#include "cppvector.h"
 #include "hashtable.h"
 #include "hashset.h"
 #include "classlist.h"
 #include "array.h"
-
-ArrayDef(Element, Element *);
-ArrayDef(Boolean, Boolean *);
-ArrayDef(Set, Set *);
-
-
-VectorDef(Table, Table *, 4);
-VectorDef(Set, Set *, 4);
-VectorDef(Boolean, Boolean *, 4);
-VectorDef(Constraint, Constraint *, 4);
-VectorDef(Function, Function *, 4);
-VectorDef(Predicate, Predicate *, 4);
-VectorDef(Element, Element *, 4);
-VectorDef(Order, Order *, 4);
-VectorDef(TableEntry, TableEntry *, 4);
-VectorDef(ASTNode, ASTNode *, 4);
-VectorDef(FunctionEncoding, FunctionEncoding *, 4);
-VectorDef(ElementEncoding, ElementEncoding *, 4);
-VectorDef(Int, uint64_t, 4);
-
-
-inline unsigned int Ptr_hash_function(void * hash) {
-       return (unsigned int)((uint64_t)hash >> 4);
-}
-
-inline bool Ptr_equals(void * key1, void * key2) {
-       return key1 == key2;
-}
-
-HashTableDef(Void, void *, void *, Ptr_hash_function, Ptr_equals);
-HashSetDef(Void, void *, Ptr_hash_function, Ptr_equals);
+#include "corestructs.h"
+
+unsigned int table_entry_hash_function(TableEntry *This);
+bool table_entry_equals(TableEntry *key1, TableEntry *key2);
+unsigned int order_node_hash_function(OrderNode *This);
+bool order_node_equals(OrderNode *key1, OrderNode *key2);
+unsigned int order_edge_hash_function(OrderEdge *This);
+bool order_edge_equals(OrderEdge *key1, OrderEdge *key2);
+unsigned int order_element_hash_function(OrderElement *This);
+bool order_element_equals(OrderElement *key1, OrderElement *key2);
+unsigned int order_pair_hash_function(OrderPair *This);
+bool order_pair_equals(OrderPair *key1, OrderPair *key2);
+
+
+
+typedef HashSet<TableEntry *, uintptr_t, 4, table_entry_hash_function, table_entry_equals> HashSetTableEntry;
+typedef HashSet<OrderNode *, uintptr_t, 4, order_node_hash_function, order_node_equals> HashSetOrderNode;
+typedef HashSet<OrderEdge *, uintptr_t, 4, order_edge_hash_function, order_edge_equals> HashSetOrderEdge;
+typedef HashSet<OrderElement *, uintptr_t, 4, order_element_hash_function, order_element_equals> HashSetOrderElement;
+typedef HashTable<OrderNode *, HashSetOrderNode *, uintptr_t, 4> HashTableNodeToNodeSet;
+typedef HashTable<OrderPair *, OrderPair *, uintptr_t, 4, order_pair_hash_function, order_pair_equals> HashTableOrderPair;
+typedef HashTable<void *, void *, uintptr_t, 4> CloneMap;
+typedef HashTable<Order* , IntegerEncodingRecord*, uintptr_t, 4> HashTableOrderIntegerEncoding; 
+
+typedef HSIterator<TableEntry *, uintptr_t, 4, table_entry_hash_function, table_entry_equals> HSIteratorTableEntry;
+typedef HSIterator<OrderEdge *, uintptr_t, 4, order_edge_hash_function, order_edge_equals> HSIteratorOrderEdge;
+typedef HSIterator<OrderNode *, uintptr_t, 4, order_node_hash_function, order_node_equals> HSIteratorOrderNode;
 
 
 #endif