Fully convert ordergraph to objects
[satune.git] / src / ASTAnalyses / ordergraph.h
index 33f2b69cab59121f7e0033c0a3d44e2b6ba12d4d..eba6dbdeb615cd090828f53217d77b0cece45643 100644 (file)
 #include "structs.h"
 #include "mymemory.h"
 
-struct OrderGraph {
+class OrderGraph {
+ public:
+       OrderGraph(Order *order);
+       ~OrderGraph();
+       void addOrderConstraintToOrderGraph(BooleanOrder *bOrder);
+       void addMustOrderConstraintToOrderGraph(BooleanOrder *bOrder);
+       OrderNode *getOrderNodeFromOrderGraph(uint64_t id);
+       OrderEdge *getOrderEdgeFromOrderGraph(OrderNode *begin, OrderNode *end);
+       OrderNode *lookupOrderNodeFromOrderGraph(uint64_t id);
+       OrderEdge *lookupOrderEdgeFromOrderGraph(OrderNode *begin, OrderNode *end);
+       void addOrderEdge(OrderNode *node1, OrderNode *node2, BooleanOrder *constr);
+       void addMustOrderEdge(OrderNode *node1, OrderNode *node2, BooleanOrder *constr);
+       OrderEdge *getInverseOrderEdge(OrderEdge *edge);
        HashSetOrderNode *nodes;
        HashSetOrderEdge *edges;
        Order *order;
 };
 
-OrderGraph *allocOrderGraph(Order *order);
 OrderGraph *buildOrderGraph(Order *order);
 OrderGraph *buildMustOrderGraph(Order *order);
-void addOrderConstraintToOrderGraph(OrderGraph *graph, BooleanOrder *bOrder);
-void addMustOrderConstraintToOrderGraph(OrderGraph *graph, BooleanOrder *bOrder);
-OrderNode *getOrderNodeFromOrderGraph(OrderGraph *graph, uint64_t id);
-OrderEdge *getOrderEdgeFromOrderGraph(OrderGraph *graph, OrderNode *begin, OrderNode *end);
-OrderNode *lookupOrderNodeFromOrderGraph(OrderGraph *graph, uint64_t id);
-OrderEdge *lookupOrderEdgeFromOrderGraph(OrderGraph *graph, OrderNode *begin, OrderNode *end);
-void addOrderEdge(OrderGraph *graph, OrderNode *node1, OrderNode *node2, BooleanOrder *constr);
-void addMustOrderEdge(OrderGraph *graph, OrderNode *node1, OrderNode *node2, BooleanOrder *constr);
-void deleteOrderGraph(OrderGraph *graph);
-OrderEdge *getInverseOrderEdge(OrderGraph *graph, OrderEdge *edge);
 #endif/* ORDERGRAPH_H */