edits
[satune.git] / src / Backend / orderpair.h
index b34ea1a324557f7816be269806b8fe2314be79e2..7c1cabdcf962ed8c713fde165e72b28c8c0e204d 100644 (file)
 #include "constraint.h"
 
 class OrderPair {
- public:
-       OrderPair(uint64_t first, uint64_t second, Edge constraint);
+public:
+       OrderPair(uint64_t first, uint64_t second, Edge constraint = E_NULL);
        OrderPair();
-       uint64_t first;
+       virtual ~OrderPair();
+       virtual Edge getConstraint();
+       virtual bool getConstraintValue(CSolver *solver);
+       //for the cases that we swap first and second ... For total order is straight forward.
+       // but for partial order it has some complexity which should be hidden ... -HG
+       virtual Edge getNegatedConstraint();
+       virtual bool getNegatedConstraintValue(CSolver *solver);
+       uint64_t first;
        uint64_t second;
+       CMEMALLOC;
+protected:
        Edge constraint;
-       MEMALLOC;
 };
 
 #endif/* ORDERPAIR_H */