Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
please sonar
[simgrid.git] / src / mc / mc_state.h
index f5d86b5..371d248 100644 (file)
 
 #include <simgrid_config.h>
 #include "src/simix/smx_private.h"
+#include "src/kernel/activity/SynchroIo.hpp"
+#include "src/kernel/activity/SynchroComm.hpp"
+#include "src/kernel/activity/SynchroRaw.hpp"
+#include "src/kernel/activity/SynchroSleep.hpp"
+#include "src/kernel/activity/SynchroExec.hpp"
 #include "src/mc/mc_snapshot.h"
 #include "src/mc/mc_record.h"
 #include "src/mc/Transition.hpp"
 namespace simgrid {
 namespace mc {
 
+enum class PatternCommunicationType {
+  none = 0,
+  send = 1,
+  receive = 2,
+};
+
 struct PatternCommunication {
   int num = 0;
-  smx_synchro_t comm_addr;
-  e_smx_comm_type_t type = SIMIX_COMM_SEND;
+  smx_activity_t comm_addr;
+  PatternCommunicationType type = PatternCommunicationType::send;
   unsigned long src_proc = 0;
   unsigned long dst_proc = 0;
   const char *src_host = nullptr;
@@ -125,7 +136,7 @@ struct XBT_PRIVATE State {
   s_smx_simcall_t internal_req;
 
   /* Can be used as a copy of the remote synchro object */
-  s_smx_synchro_t internal_comm;
+  simgrid::mc::Remote<simgrid::kernel::activity::Comm> internal_comm;
 
   /** Snapshot of system state (if needed) */
   std::shared_ptr<simgrid::mc::Snapshot> system_state;
@@ -137,7 +148,7 @@ struct XBT_PRIVATE State {
   State();
 
   std::size_t interleaveSize() const;
-  void interleave(smx_process_t process)
+  void interleave(smx_actor_t process)
   {
     this->processStates[process->pid].interleave();
   }