cyclegraph: add destructor, use 'const' appropriately
authorBrian Norris <banorris@uci.edu>
Tue, 31 Jul 2012 22:50:07 +0000 (15:50 -0700)
committerBrian Norris <banorris@uci.edu>
Tue, 31 Jul 2012 23:15:57 +0000 (16:15 -0700)
[Split from Brian Demsky's larger commit]

cyclegraph.cc
cyclegraph.h

index dad8b7a..fefd595 100644 (file)
@@ -6,8 +6,11 @@ CycleGraph::CycleGraph() {
        hasCycles=false;
 }
 
+CycleGraph::~CycleGraph() {
+}
+
 /** Returns the CycleNode for a given ModelAction. */
-CycleNode * CycleGraph::getNode(ModelAction * action) {
+CycleNode * CycleGraph::getNode(const ModelAction * action) {
        CycleNode *node=actionToNode.get(action);
        if (node==NULL) {
                node=new CycleNode(action);
@@ -17,7 +20,7 @@ CycleNode * CycleGraph::getNode(ModelAction * action) {
 }
 
 /** Adds an edge between two ModelActions. */
-void CycleGraph::addEdge(ModelAction *from, ModelAction *to) {
+void CycleGraph::addEdge(const ModelAction *from, const ModelAction *to) {
        CycleNode *fromnode=getNode(from);
        CycleNode *tonode=getNode(to);
        if (!hasCycles) {
@@ -57,7 +60,7 @@ bool CycleGraph::checkForCycles() {
 }
 
 /** Constructor for a CycleNode. */
-CycleNode::CycleNode(ModelAction *modelaction) {
+CycleNode::CycleNode(const ModelAction *modelaction) {
        action=modelaction;
 }
 
index a748c77..a98e68c 100644 (file)
@@ -12,25 +12,25 @@ class ModelAction;
 class CycleGraph {
  public:
        CycleGraph();
-       void addEdge(ModelAction *from, ModelAction *to);
+       ~CycleGraph();
+       void addEdge(const ModelAction *from, const ModelAction *to);
        bool checkForCycles();
 
  private:
-       CycleNode * getNode(ModelAction *);
-       HashTable<ModelAction *, CycleNode *, uintptr_t, 4> actionToNode;
+       CycleNode * getNode(const ModelAction *);
+       HashTable<const ModelAction *, CycleNode *, uintptr_t, 4> actionToNode;
        bool checkReachable(CycleNode *from, CycleNode *to);
        bool hasCycles;
-
 };
 
 class CycleNode {
  public:
-       CycleNode(ModelAction *action);
+       CycleNode(const ModelAction *action);
        void addEdge(CycleNode * node);
        std::vector<CycleNode *> * getEdges();
 
  private:
-       ModelAction *action;
+       const ModelAction *action;
        std::vector<CycleNode *> edges;
 };