+ bool is_enabled(Thread *t) const;
+ bool is_enabled(thread_id_t tid) const;
+ enabled_type_t enabled_status(thread_id_t tid) const;
+
+ ModelAction * get_action() const { return action; }
+ bool has_priority(thread_id_t tid) const;
+ int get_num_threads() const { return num_threads; }
+ /** @return the parent Node to this Node; that is, the action that
+ * occurred previously in the stack. */
+ Node * get_parent() const { return parent; }
+
+ bool add_future_value(struct future_value& fv);
+ struct future_value get_future_value() const;
+ bool increment_future_value();
+ bool future_value_empty() const;
+
+ void add_read_from(const ModelAction *act);
+ const ModelAction * get_read_from() const;
+ bool increment_read_from();
+ bool read_from_empty() const;
+ int get_read_from_size() const;
+ const ModelAction * get_read_from_at(int i) const;
+
+ void set_promise(unsigned int i, bool is_rmw);
+ bool get_promise(unsigned int i) const;
+ bool increment_promise();
+ bool promise_empty() const;
+ enabled_type_t *get_enabled_array() {return enabled_array;}
+
+ void set_misc_max(int i);
+ int get_misc() const;
+ bool increment_misc();
+ bool misc_empty() const;
+
+ void add_relseq_break(const ModelAction *write);
+ const ModelAction * get_relseq_break() const;
+ bool increment_relseq_break();
+ bool relseq_break_empty() const;
+
+ void print() const;
+ void print_may_read_from();