#include "ops.h"
#include "orderencoding.h"
#include "boolean.h"
+#include "orderpair.h"
-struct Order {
+class Order {
+public:
+ Order(OrderType type, Set *set);
+ ~Order();
OrderType type;
- Set * set;
- HashTableOrderPair * orderPairTable;
- VectorBooleanOrder constraints;
+ Set *set;
+ HashTableOrderPair *orderPairTable;
+ OrderGraph *graph;
+ Order *clone(CSolver *solver, CloneMap *map);
+ Vector<BooleanOrder *> constraints;
OrderEncoding order;
+ void initializeOrderHashTable();
+ void initializeOrderElementsHashTable();
+ void addOrderConstraint(BooleanOrder *constraint);
+ void setOrderEncodingType(OrderEncodingType type);
+ CMEMALLOC;
};
-Order* allocOrder(OrderType type, Set * set);
-void initializeOrderHashTable(Order * This);
-void addOrderConstraint(Order * This, BooleanOrder * constraint);
-void setOrderEncodingType(Order * This, OrderEncodingType type);
-void deleteOrder(Order * This);
#endif