#include "mymemory.h"
#include "structs.h"
#include "ops.h"
-struct Order {
+#include "orderencoding.h"
+#include "boolean.h"
+#include "orderpair.h"
+
+class Order {
+ public:
+ Order(OrderType type, Set *set);
+ ~Order();
OrderType type;
- Set * set;
- VectorBoolean constraints;
+ Set *set;
+ HashTableOrderPair *orderPairTable;
+ HashSetOrderElement* elementTable;
+ OrderGraph *graph;
+ Vector<BooleanOrder *> constraints;
+ OrderEncoding order;
+ void initializeOrderHashTable();
+ void initializeOrderElementsHashTable();
+ void addOrderConstraint(BooleanOrder *constraint);
+ void setOrderEncodingType(OrderEncodingType type);
+ MEMALLOC;
};
-Order* allocOrder(OrderType type, Set * set);
-void deleteOrder(Order* order);
-
#endif