Extend tuning framework
[satune.git] / src / Backend / orderpair.h
index 21bddd794dcbc6906af73f58ec3aba2d06786fc2..f65064819da76d111fc87d1eb9862971c7e7fe86 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * File:   orderpair.h
  * Author: hamed
  *
 
 #include "classlist.h"
 #include "mymemory.h"
+#include "constraint.h"
 
-struct OrderPair{
+class OrderPair {
+public:
+       OrderPair(uint64_t first, uint64_t second, Edge constraint = E_NULL);
+       OrderPair();
+       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;
+};
 
-OrderPair* allocOrderPair(uint64_t first, uint64_t second);
-void deleteOrderPair(OrderPair* pair);
-
-#endif /* ORDERPAIR_H */
+#endif/* ORDERPAIR_H */