*/
class ModelAction {
public:
- ModelAction(action_type_t type, memory_order order, void *loc, int value);
+ ModelAction(action_type_t type, memory_order order, void *loc, int value = VALUE_NONE);
~ModelAction();
- void print(void);
+ void print(void) const;
thread_id_t get_tid() const { return tid; }
action_type get_type() const { return type; }
memory_order get_mo() const { return order; }
void * get_location() const { return location; }
int get_seq_number() const { return seq_number; }
+ int get_value() const { return value; }
Node * get_node() const { return node; }
void set_node(Node *n) { node = n; }
+ void set_value(int val) { value = val; }
bool is_read() const;
bool is_write() const;
bool is_synchronizing(const ModelAction *act) const;
void create_cv(ModelAction *parent = NULL);
+ ClockVector * get_cv() const { return cv; }
void read_from(ModelAction *act);
+ bool happens_before(ModelAction *act);
+
inline bool operator <(const ModelAction& act) const {
return get_seq_number() < act.get_seq_number();
}