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);
}
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)
}
-void simgrid::simix::Comm::resume()
+void simgrid::kernel::activity::Comm::resume()
{
/*FIXME: check what happen with the timeouts */
if (surf_comm)
/* 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 */
}
/** @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();
}
}
-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)