+ 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; }
+ void set_uninit_action(ModelAction *act) { uninit_action = act; }
+ ModelAction * get_uninit_action() const { return uninit_action; }
+
+ bool has_priority(thread_id_t tid) const;
+ void update_yield(Scheduler *);
+ bool has_priority_over(thread_id_t tid, thread_id_t tid2) 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; }
+
+ read_from_type_t get_read_from_status();
+ bool increment_read_from();
+ bool read_from_empty() const;
+ unsigned int read_from_size() const;
+
+ void print_read_from_past();
+ void add_read_from_past(const ModelAction *act);
+ const ModelAction * get_read_from_past() const;
+ const ModelAction * get_read_from_past(int i) const;
+ int get_read_from_past_size() const;
+
+ void add_read_from_promise(const ModelAction *reader);
+ Promise * get_read_from_promise() const;
+ Promise * get_read_from_promise(int i) const;
+ int get_read_from_promise_size() const;
+
+ bool add_future_value(struct future_value fv);
+ struct future_value get_future_value() const;
+
+ void set_promise(unsigned int i);
+ bool get_promise(unsigned int i) const;
+ bool increment_promise();
+ bool promise_empty() const;
+ void clear_promise_resolutions();
+
+ 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;