xbt_die("Refusing to create the link %s: there is no link in the Constant network model. "
"Please remove any link from your platform (and switch to routing='None')", name);
+ return nullptr;
}
double NetworkConstantModel::next_occuring_event(double /*now*/)
action->latency_ = 0.0;
}
}
- action->updateRemains(action->getCost() * delta / action->m_latInit);
+ action->updateRemains(action->getCost() * delta / action->initialLatency_);
if (action->getMaxDuration() != NO_MAX_DURATION)
action->updateMaxDuration(delta);
/**********
* Action *
**********/
-
- int NetworkConstantAction::unref()
+ NetworkConstantAction::NetworkConstantAction(NetworkConstantModel *model_, double size, double latency)
+ : NetworkAction(model_, size, false)
+ , initialLatency_(latency)
{
- m_refcount--;
- if (!m_refcount) {
- if (action_hook.is_linked())
- p_stateSet->erase(p_stateSet->iterator_to(*this));
- delete this;
- return 1;
+ latency_ = latency;
+ if (latency_ <= 0.0) {
+ stateSet_ = getModel()->getDoneActionSet();
+ stateSet_->push_back(*this);
}
- return 0;
- }
-
- void NetworkConstantAction::cancel()
- {
- return;
- }
-
+ variable_ = NULL;
+ };
}
}