nodestack: add class NodeStack and class Node
[model-checker.git] / action.h
index f9f0c41762d72c03cfd57c2f4b2b420e1d242462..530436d87b8465a7cb33025da42097e684d93983 100644 (file)
--- a/action.h
+++ b/action.h
@@ -3,9 +3,8 @@
 
 #include <list>
 
-#include "libthreads.h"
-#include "libatomic.h"
 #include "threads.h"
+#include "libatomic.h"
 
 #define VALUE_NONE -1
 
@@ -17,8 +16,9 @@ typedef enum action_type {
        ATOMIC_WRITE
 } action_type_t;
 
-/* Forward declaration (tree.h) */
+/* Forward declaration */
 class TreeNode;
+class Node;
 
 class ModelAction {
 public:
@@ -29,9 +29,11 @@ public:
        action_type get_type() { return type; }
        memory_order get_mo() { return order; }
        void * get_location() { return location; }
+       int get_seq_number() { return seq_number; }
 
-       TreeNode * get_node() { return node; }
-       void set_node(TreeNode *n) { node = n; }
+       TreeNode * get_treenode() { return treenode; }
+       void set_node(TreeNode *n) { treenode = n; }
+       void set_node(Node *n) { node = n; }
 
        bool is_read();
        bool is_write();
@@ -46,7 +48,9 @@ private:
        void *location;
        thread_id_t tid;
        int value;
-       TreeNode *node;
+       TreeNode *treenode;
+       Node *node;
+       int seq_number;
 };
 
 typedef std::list<class ModelAction *> action_list_t;