- std::shared_ptr<simgrid::mc::Snapshot> system_state_;
-
- // For CommunicationDeterminismChecker
- std::vector<std::vector<simgrid::mc::PatternCommunication>> incomplete_comm_pattern_;
- std::vector<unsigned> communication_indices_;
-
+ std::shared_ptr<Snapshot> system_state_;
+
+ /** Unique parent of this state. Required both for sleep set computation
+ and for guided model-checking */
+ const State* parent_state_;
+
+ /* Sleep sets are composed of the actor and the corresponding transition that made it being added to the sleep
+ * set. With this information, it is check whether it should be removed from it or not when exploring a new
+ * transition */
+ std::map<aid_t, Transition> sleep_set_;
+
+public:
+ explicit State(RemoteApp& remote_app);
+ explicit State(RemoteApp& remote_app, const State* parent_state);