tree: revise arguments (use Thread, ModelAction)
[c11tester.git] / tree.h
diff --git a/tree.h b/tree.h
index 766aacd9ff981eb12c0f8f45e0c7b1076b7176f3..1752d3fe57cdd9535a32a2b18c1e9ddaedf28e30 100644 (file)
--- a/tree.h
+++ b/tree.h
@@ -1,8 +1,11 @@
+#ifndef __TREE_H__
+#define __TREE_H__
+
 #include <set>
 #include <map>
 #include "threads.h"
 
-typedef thread_id_t tree_t;
+class ModelAction;
 
 /*
  * An n-ary tree
@@ -12,19 +15,21 @@ typedef thread_id_t tree_t;
  */
 class TreeNode {
 public:
-       TreeNode(TreeNode *par);
+       TreeNode(TreeNode *par = NULL, ModelAction *act = NULL);
        ~TreeNode();
-       bool hasBeenExplored(tree_t id) { return children.find(id) != children.end(); }
-       TreeNode *exploreChild(tree_t id);
-       tree_t getNextBacktrack();
+       bool hasBeenExplored(thread_id_t id) { return children.find(id_to_int(id)) != children.end(); }
+       TreeNode * explore_child(ModelAction *act);
+       thread_id_t getNextBacktrack();
 
        /* Return 1 if already in backtrack, 0 otherwise */
-       int setBacktrack(tree_t id);
-       TreeNode *getRoot();
+       int setBacktrack(thread_id_t id);
+       TreeNode * getRoot();
        static int getTotalNodes() { return TreeNode::totalNodes; }
 private:
        TreeNode *parent;
-       std::map<tree_t, class TreeNode *> children;
-       std::set<tree_t> backtrack;
+       std::map<int, class TreeNode *> children;
+       std::set<int> backtrack;
        static int totalNodes;
 };
+
+#endif /* __TREE_H__ */