Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
reduce the amount of static_cast in smx_network
[simgrid.git] / src / kernel / activity / SynchroComm.cpp
index a0058b1..f8969b7 100644 (file)
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_network);
 
-simgrid::simix::Comm::Comm(e_smx_comm_type_t _type) {
+simgrid::kernel::activity::Comm::Comm(e_smx_comm_type_t _type) : type(_type)
+{
   state = SIMIX_WAITING;
-  this->type = _type;
   src_data=nullptr;
   dst_data=nullptr;
 
   XBT_DEBUG("Create communicate synchro %p", this);
 }
 
-simgrid::simix::Comm::~Comm()
+simgrid::kernel::activity::Comm::~Comm()
 {
   XBT_DEBUG("Really free communication %p", this);
 
@@ -35,10 +35,9 @@ simgrid::simix::Comm::~Comm()
   }
 
   if(mbox)
-    SIMIX_mbox_remove(mbox, this);
-
+    mbox->remove(this);
 }
-void simgrid::simix::Comm::suspend()
+void simgrid::kernel::activity::Comm::suspend()
 {
   /* FIXME: shall we suspend also the timeout synchro? */
   if (surf_comm)
@@ -47,7 +46,7 @@ void simgrid::simix::Comm::suspend()
 
 }
 
-void simgrid::simix::Comm::resume()
+void simgrid::kernel::activity::Comm::resume()
 {
   /*FIXME: check what happen with the timeouts */
   if (surf_comm)
@@ -55,12 +54,12 @@ void simgrid::simix::Comm::resume()
   /* in the other case, the synchro were not really suspended yet, see SIMIX_comm_suspend() and SIMIX_comm_start() */
 }
 
-void simgrid::simix::Comm::cancel()
+void simgrid::kernel::activity::Comm::cancel()
 {
   /* if the synchro is a waiting state means that it is still in a mbox */
   /* so remove from it and delete it */
   if (state == SIMIX_WAITING) {
-    SIMIX_mbox_remove(mbox, this);
+    mbox->remove(this);
     state = SIMIX_CANCELED;
   }
   else if (!MC_is_active() /* when running the MC there are no surf actions */
@@ -72,27 +71,17 @@ void simgrid::simix::Comm::cancel()
 }
 
 /**  @brief get the amount remaining from the communication */
-double simgrid::simix::Comm::remains()
+double simgrid::kernel::activity::Comm::remains()
 {
-  switch (state) {
-
-  case SIMIX_RUNNING:
+  if (state == SIMIX_RUNNING)
     return surf_comm->getRemains();
-    break;
 
-  case SIMIX_WAITING:
-  case SIMIX_READY:
-    return 0; /*FIXME: check what should be returned */
-    break;
-
-  default:
-    return 0; /*FIXME: is this correct? */
-    break;
-  }
+  /* FIXME: check what should be returned in the other cases */
+  return 0;
 }
 
 /** @brief This is part of the cleanup process, probably an internal command */
-void simgrid::simix::Comm::cleanupSurf()
+void simgrid::kernel::activity::Comm::cleanupSurf()
 {
   if (surf_comm){
     surf_comm->unref();
@@ -110,7 +99,7 @@ void simgrid::simix::Comm::cleanupSurf()
   }
 }
 
-void simgrid::simix::Comm::post()
+void simgrid::kernel::activity::Comm::post()
 {
   /* Update synchro state */
   if (src_timeout &&  src_timeout->getState() == simgrid::surf::Action::State::done)