+ /* Internal translation of the simcall
+ *
+ * SIMCALL_COMM_TESTANY is translated to a SIMCALL_COMM_TEST
+ * and SIMCALL_COMM_WAITANY to a SIMCALL_COMM_WAIT.
+ */
+ s_smx_simcall_t internal_req;
+
+ /* Can be used as a copy of the remote synchro object */
+ simgrid::mc::Remote<simgrid::kernel::activity::Comm> internal_comm;
+
+ /** Snapshot of system state (if needed) */
+ std::shared_ptr<simgrid::mc::Snapshot> system_state;
+
+ // For CommunicationDeterminismChecker
+ std::vector<std::vector<simgrid::mc::PatternCommunication>> incomplete_comm_pattern;
+ std::vector<unsigned> communicationIndices;
+
+ State(unsigned long state_number);
+
+ std::size_t interleaveSize() const;
+ void interleave(smx_actor_t process)
+ {
+ this->processStates[process->pid].interleave();
+ }
+ Transition getTransition() const;
+};