Switch to vector class
[satune.git] / src / AST / order.cc
1 #include "order.h"
2 #include "structs.h"
3 #include "set.h"
4 #include "boolean.h"
5 #include "ordergraph.h"
6
7 Order::Order(OrderType _type, Set *_set) : type(_type), set(_set), orderPairTable(NULL), elementTable(NULL), graph(NULL) {
8         initOrderEncoding(&order, this);
9 }
10
11 void Order::initializeOrderHashTable() {
12         orderPairTable = allocHashTableOrderPair(HT_INITIAL_CAPACITY, HT_DEFAULT_FACTOR);
13 }
14
15 void Order::initializeOrderElementsHashTable() {
16         elementTable = allocHashSetOrderElement(HT_INITIAL_CAPACITY, HT_DEFAULT_FACTOR);
17 }
18
19 void Order::addOrderConstraint(BooleanOrder *constraint) {
20         constraints.push(constraint);
21 }
22
23 void Order::setOrderEncodingType(OrderEncodingType type) {
24         order.type = type;
25 }
26
27 Order::~Order() {
28         deleteOrderEncoding(&order);
29         if (orderPairTable != NULL) {
30                 resetAndDeleteHashTableOrderPair(orderPairTable);
31                 deleteHashTableOrderPair(orderPairTable);
32         }
33         if(elementTable != NULL){
34                 deleteHashSetOrderElement(elementTable);
35         }
36         if (graph != NULL) {
37                 deleteOrderGraph(graph);
38         }
39 }