X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FCollections%2Fstructs.h;h=30fc93b2eafb72ee6219b2acd63c9bdb6f70e741;hb=c5e632659f6f8ad931cf14104f72a5aa59acf911;hp=b026357c85f160505502c3981c59bebc1fd5af8d;hpb=168c4f3db3fb0ee321d5bbfe227890594dd68499;p=satune.git diff --git a/src/Collections/structs.h b/src/Collections/structs.h index b026357..30fc93b 100644 --- a/src/Collections/structs.h +++ b/src/Collections/structs.h @@ -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 HashSetTableEntry; +typedef HashSet HashSetOrderNode; +typedef HashSet HashSetOrderEdge; +typedef HashSet HashSetOrderElement; +typedef HashTable HashTableNodeToNodeSet; +typedef HashTable HashTableOrderPair; +typedef HashTable CloneMap; +typedef HashTable HashTableOrderIntegerEncoding; + +typedef HSIterator HSIteratorTableEntry; +typedef HSIterator HSIteratorOrderEdge; +typedef HSIterator HSIteratorOrderNode; #endif