Adding STL stuff and operator news of snapshot to model-checker. Need to actuallly...
[c11tester.git] / tree.h
diff --git a/tree.h b/tree.h
index 9fba203473122b66a2a2fcc4d0cfc2cd54ca6649..e107a7ef76f1d2805d7f1005e1313b1fc1184750 100644 (file)
--- a/tree.h
+++ b/tree.h
@@ -1,10 +1,13 @@
 #ifndef __TREE_H__
 #define __TREE_H__
-
+#include "mymemory.h"
 #include <set>
 #include <map>
+#include <cstddef>
 #include "threads.h"
 
+class ModelAction;
+
 /*
  * An n-ary tree
  *
  */
 class TreeNode {
 public:
-       TreeNode(TreeNode *par);
+       TreeNode(TreeNode *par = NULL, ModelAction *act = NULL);
        ~TreeNode();
        bool hasBeenExplored(thread_id_t id) { return children.find(id_to_int(id)) != children.end(); }
-       TreeNode * exploreChild(thread_id_t id);
+       TreeNode * explore_child(ModelAction *act);
        thread_id_t getNextBacktrack();
 
        /* Return 1 if already in backtrack, 0 otherwise */
        int setBacktrack(thread_id_t id);
        TreeNode * getRoot();
        static int getTotalNodes() { return TreeNode::totalNodes; }
+
+       bool is_enabled(Thread *t);
+  MEMALLOC
 private:
        TreeNode *parent;
-       std::map<int, class TreeNode *> children;
-       std::set<int> backtrack;
+       std::map<int, class TreeNode *, std::less< int >, MyAlloc< std::pair< const int, class TreeNode * > > > children;
+       std::set<int, std::less< int >, MyAlloc< int > > backtrack;
        static int totalNodes;
+       int num_threads;
 };
 
 #endif /* __TREE_H__ */