Small edit
[satune.git] / src / Collections / structs.h
1 #ifndef STRUCTS_H
2 #define STRUCTS_H
3 #include "cppvector.h"
4 #include "hashtable.h"
5 #include "hashset.h"
6 #include "classlist.h"
7 #include "array.h"
8 #include "corestructs.h"
9
10 unsigned int table_entry_hash_function(TableEntry *This);
11 bool table_entry_equals(TableEntry *key1, TableEntry *key2);
12 unsigned int order_node_hash_function(OrderNode *This);
13 bool order_node_equals(OrderNode *key1, OrderNode *key2);
14 unsigned int order_edge_hash_function(OrderEdge *This);
15 bool order_edge_equals(OrderEdge *key1, OrderEdge *key2);
16 unsigned int order_element_hash_function(OrderElement *This);
17 bool order_element_equals(OrderElement *key1, OrderElement *key2);
18 unsigned int order_pair_hash_function(OrderPair *This);
19 bool order_pair_equals(OrderPair *key1, OrderPair *key2);
20
21
22 typedef Hashset<TableEntry *, uintptr_t, 4, table_entry_hash_function, table_entry_equals> HashsetTableEntry;
23 typedef Hashset<OrderNode *, uintptr_t, 4, order_node_hash_function, order_node_equals> HashsetOrderNode;
24 typedef Hashset<OrderEdge *, uintptr_t, 4, order_edge_hash_function, order_edge_equals> HashsetOrderEdge;
25 typedef Hashset<OrderElement *, uintptr_t, 4, order_element_hash_function, order_element_equals> HashsetOrderElement;
26
27 typedef Hashtable<OrderNode *, HashsetOrderNode *, uintptr_t, 4> HashtableNodeToNodeSet;
28 typedef Hashtable<OrderPair *, OrderPair *, uintptr_t, 4, order_pair_hash_function, order_pair_equals> HashtableOrderPair;
29 typedef Hashtable<void *, void *, uintptr_t, 4> CloneMap;
30 typedef Hashtable<Order* , IntegerEncodingRecord*, uintptr_t, 4> HashTableOrderIntEncoding; 
31
32 typedef SetIterator<TableEntry *, uintptr_t, 4, table_entry_hash_function, table_entry_equals> SetIteratorTableEntry;
33 typedef SetIterator<OrderEdge *, uintptr_t, 4, order_edge_hash_function, order_edge_equals> SetIteratorOrderEdge;
34 typedef SetIterator<OrderNode *, uintptr_t, 4, order_node_hash_function, order_node_equals> SetIteratorOrderNode;
35 typedef SetIterator<OrderElement *, uintptr_t, 4, order_element_hash_function, order_element_equals> SetIteratorOrderElement;
36
37 #endif