X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.h;h=2f856e9dfa9be1363dacd91ac84384a52d93cd07;hb=810306cb85accaaace9a50f174264f105991230b;hp=c069cab3a3c5c3a7e6804498a2f6262b753a6f20;hpb=8c24abefd5f4c7528a245ec786309f96601b5c58;p=model-checker.git diff --git a/action.h b/action.h index c069cab..2f856e9 100644 --- a/action.h +++ b/action.h @@ -17,6 +17,7 @@ typedef enum action_type { /* Forward declaration */ class TreeNode; +class Node; class ModelAction { public: @@ -27,10 +28,12 @@ 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; } + int get_seq_number() const { 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; } + Node * get_node() { return node; } + void set_node(Node *n) { node = n; } bool is_read(); bool is_write(); @@ -39,6 +42,13 @@ public: bool same_var(ModelAction *act); bool same_thread(ModelAction *act); bool is_dependent(ModelAction *act); + + inline bool operator <(const ModelAction& act) const { + return get_seq_number() < act.get_seq_number(); + } + inline bool operator >(const ModelAction& act) const { + return get_seq_number() > act.get_seq_number(); + } MEMALLOC private: action_type type; @@ -46,7 +56,8 @@ private: void *location; thread_id_t tid; int value; - TreeNode *node; + TreeNode *treenode; + Node *node; int seq_number; };