#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;
- HashSetOrderElement* elementTable;
OrderGraph *graph;
- VectorBooleanOrder constraints;
+ 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 initializeOrderElementsHashTable(Order *This);
-void addOrderConstraint(Order *This, BooleanOrder *constraint);
-void setOrderEncodingType(Order *This, OrderEncodingType type);
-void deleteOrder(Order *This);
#endif