2301d47b41a6faac22d4f34a68aced8daf494a7f
[satune.git] / src / AST / order.h
1 #ifndef ORDER_H
2 #define ORDER_H
3 #include "classlist.h"
4 #include "mymemory.h"
5 #include "structs.h"
6 #include "ops.h"
7 #include "orderencoding.h"
8 #include "boolean.h"
9 #include "orderpair.h"
10 #include "serializable.h"
11
12 class Order : public Serializable {
13 public:
14         Order(OrderType type, Set *set);
15         virtual ~Order();
16         OrderType type;
17         Set *set;
18         OrderGraph *graph;
19         Order *clone(CSolver *solver, CloneMap *map);
20         void serialize(Serializer *serializer );
21         Vector<BooleanOrder *> constraints;
22         OrderEncoding encoding;
23         void setOrderResolver(OrderResolver *_resolver) { ASSERT(encoding.resolver == NULL); encoding.resolver = _resolver;};
24         void initializeOrderElementsHashtable();
25         void addOrderConstraint(BooleanOrder *constraint);
26         void setOrderEncodingType(OrderEncodingType type);
27         HashtableOrderPair* getOrderPairTable();
28         CMEMALLOC;
29 };
30
31 #endif