5 * Created on August 7, 2017, 3:42 PM
10 #include "classlist.h"
16 OrderGraph(Order *order);
18 void addOrderConstraintToOrderGraph(BooleanOrder *bOrder);
19 void addMustOrderConstraintToOrderGraph(BooleanOrder *bOrder);
20 OrderNode *getOrderNodeFromOrderGraph(uint64_t id);
21 OrderEdge *getOrderEdgeFromOrderGraph(OrderNode *begin, OrderNode *end);
22 OrderNode *lookupOrderNodeFromOrderGraph(uint64_t id);
23 OrderEdge *lookupOrderEdgeFromOrderGraph(OrderNode *begin, OrderNode *end);
24 void addOrderEdge(OrderNode *node1, OrderNode *node2, BooleanOrder *constr);
25 void addMustOrderEdge(OrderNode *node1, OrderNode *node2, BooleanOrder *constr);
26 OrderEdge *getInverseOrderEdge(OrderEdge *edge);
27 Order *getOrder() {return order;}
28 bool isTherePath(OrderNode* source, OrderNode* destination);
29 bool isTherePathVisit(HashsetOrderNode &visited, OrderNode* current, OrderNode* destination);
30 SetIteratorOrderNode *getNodes() {return nodes->iterator();}
31 SetIteratorOrderEdge *getEdges() {return edges->iterator();}
35 HashsetOrderNode *nodes;
36 HashsetOrderEdge *edges;
40 OrderGraph *buildOrderGraph(Order *order);
41 OrderGraph *buildMustOrderGraph(Order *order);
42 #endif/* ORDERGRAPH_H */