- std::list<std::unique_ptr<State>> stack_;
- VisitedStates visited_states_;
- std::unique_ptr<VisitedState> visited_state_;
+ stack_t stack_;
+
+ /**
+ * Provides additional metadata about the position in the exploration graph
+ * which is used by SDPOR and ODPOR
+ */
+ odpor::Execution execution_seq_;
+
+ /** Per-actor clock vectors used to compute the "happens-before" relation */
+ std::unordered_map<aid_t, ClockVector> per_actor_clocks_;
+
+ /** Opened states are states that still contains todo actors.
+ * When backtracking, we pick a state from it*/
+ std::vector<std::shared_ptr<State>> opened_states_;
+ std::shared_ptr<State> best_opened_state();
+
+ /** If we're running ODPOR, picks the corresponding state in the stack
+ * (opened_states_ are ignored)
+ */
+ std::shared_ptr<State> next_odpor_state();
+
+ /** Change current stack_ value to correspond to the one we would have
+ * had if we executed transition to get to state. This is required when
+ * backtracking, and achieved thanks to the fact states save their parent.*/
+ void restore_stack(std::shared_ptr<State> state);
+
+ RecordTrace get_record_trace_of_stack(stack_t stack);