edits
[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         initDefVectorBooleanOrder(&constraints);
9         initOrderEncoding(&order, this);
10 }
11
12 void Order::initializeOrderHashTable() {
13         orderPairTable = allocHashTableOrderPair(HT_INITIAL_CAPACITY, HT_DEFAULT_FACTOR);
14 }
15
16 void Order::initializeOrderElementsHashTable() {
17         elementTable = allocHashSetOrderElement(HT_INITIAL_CAPACITY, HT_DEFAULT_FACTOR);
18 }
19
20 void Order::addOrderConstraint(BooleanOrder *constraint) {
21         pushVectorBooleanOrder(&constraints, constraint);
22 }
23
24 void Order::setOrderEncodingType(OrderEncodingType type) {
25         order.type = type;
26 }
27
28 Order::~Order() {
29         deleteVectorArrayBooleanOrder(&constraints);
30         deleteOrderEncoding(&order);
31         if (orderPairTable != NULL) {
32                 resetAndDeleteHashTableOrderPair(orderPairTable);
33                 deleteHashTableOrderPair(orderPairTable);
34         }
35         if(elementTable != NULL){
36                 deleteHashSetOrderElement(elementTable);
37         }
38         if (graph != NULL) {
39                 deleteOrderGraph(graph);
40         }
41 }