4a404661cc7f68488fd225c1528f929777931071
[satune.git] / src / ASTAnalyses / Order / ordernode.h
1
2 /*
3  * File:   ordernode.h
4  * Author: hamed
5  *
6  * Created on August 7, 2017, 3:43 PM
7  */
8
9 #ifndef ORDERNODE_H
10 #define ORDERNODE_H
11
12 #include "classlist.h"
13 #include "mymemory.h"
14 #include "structs.h"
15 #include "orderedge.h"
16
17 enum NodeStatus {NOTVISITED, VISITED, FINISHED, ADDEDTOSET};
18 typedef enum NodeStatus NodeStatus;
19
20 class OrderNodeKey{
21 public:
22     OrderNodeKey(uint64_t id) : id(id){}
23     virtual ~OrderNodeKey(){}
24     uint64_t getID() {return id;}
25     uint64_t id;
26 };
27
28 class OrderNode : public OrderNodeKey {
29 public:
30         OrderNode(uint64_t id);
31         virtual ~OrderNode(){}
32         void addNewIncomingEdge(OrderEdge *edge);
33         void addNewOutgoingEdge(OrderEdge *edge);
34
35         NodeStatus status;
36         bool removed;
37         uint sccNum;
38         HashsetOrderEdge inEdges;
39         HashsetOrderEdge outEdges;
40         CMEMALLOC;
41 };
42 #endif/* ORDERNODE_H */
43