Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simplify the way states are used in high-level instr modules
[simgrid.git] / src / msg / instr_msg_process.cpp
index c3e5b86..2066f50 100644 (file)
@@ -10,7 +10,7 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_msg_process, instr, "MSG process");
 
-std::string instr_process_id(msg_process_t proc)
+std::string instr_pid(msg_process_t proc)
 {
   return std::string(proc->getCname()) + "-" + std::to_string(proc->getPid());
 }
@@ -23,7 +23,7 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
     std::string key = std::to_string(counter++);
 
     //start link
-    container_t msg            = simgrid::instr::Container::byName(instr_process_id(process));
+    container_t msg = simgrid::instr::Container::byName(instr_pid(process));
     simgrid::instr::LinkType* link =
         static_cast<simgrid::instr::LinkType*>(simgrid::instr::Type::getRootType()->byName("MSG_PROCESS_LINK"));
     link->startEvent(MSG_get_clock(), simgrid::instr::Container::getRootContainer(), msg, "M", key);
@@ -35,7 +35,7 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host)
     TRACE_msg_process_create (MSG_process_get_name (process), MSG_process_get_PID (process), new_host);
 
     //end link
-    msg  = simgrid::instr::Container::byName(instr_process_id(process));
+    msg = simgrid::instr::Container::byName(instr_pid(process));
     link->endEvent(MSG_get_clock(), simgrid::instr::Container::getRootContainer(), msg, "M", key);
   }
 }
@@ -71,40 +71,24 @@ void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t proc
 
 void TRACE_msg_process_suspend(msg_process_t process)
 {
-  if (TRACE_msg_process_is_enabled()){
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
-    simgrid::instr::StateType* state =
-        static_cast<simgrid::instr::StateType*>(process_container->type_->byName("MSG_PROCESS_STATE"));
-    state->pushEvent(MSG_get_clock(), process_container, "suspend");
-  }
+  if (TRACE_msg_process_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->pushEvent("suspend");
 }
 
 void TRACE_msg_process_resume(msg_process_t process)
 {
-  if (TRACE_msg_process_is_enabled()){
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
-    simgrid::instr::StateType* state =
-        static_cast<simgrid::instr::StateType*>(process_container->type_->byName("MSG_PROCESS_STATE"));
-    state->popEvent(MSG_get_clock(), process_container);
-  }
+  if (TRACE_msg_process_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->popEvent();
 }
 
 void TRACE_msg_process_sleep_in(msg_process_t process)
 {
-  if (TRACE_msg_process_is_enabled()){
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
-    simgrid::instr::StateType* state =
-        static_cast<simgrid::instr::StateType*>(process_container->type_->byName("MSG_PROCESS_STATE"));
-    state->pushEvent(MSG_get_clock(), process_container, "sleep");
-  }
+  if (TRACE_msg_process_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->pushEvent("sleep");
 }
 
 void TRACE_msg_process_sleep_out(msg_process_t process)
 {
-  if (TRACE_msg_process_is_enabled()){
-    container_t process_container = simgrid::instr::Container::byName(instr_process_id(process));
-    simgrid::instr::StateType* state =
-        static_cast<simgrid::instr::StateType*>(process_container->type_->byName("MSG_PROCESS_STATE"));
-    state->popEvent(MSG_get_clock(), process_container);
-  }
+  if (TRACE_msg_process_is_enabled())
+    simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->popEvent();
 }