-/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
double min = HostModel::next_occurring_event_full(now);
for (kernel::resource::Action const& action : *get_started_action_set()) {
const L07Action& net_action = static_cast<const L07Action&>(action);
- if (net_action.latency_ > 0 && (min < 0 || net_action.latency_ < min)) {
- min = net_action.latency_;
+ if (net_action.get_latency() > 0 && (min < 0 || net_action.get_latency() < min)) {
+ min = net_action.get_latency();
XBT_DEBUG("Updating min with %p (start %f): %f", &net_action, net_action.get_start_time(), min);
}
}
for (auto it = std::begin(*get_started_action_set()); it != std::end(*get_started_action_set());) {
L07Action& action = static_cast<L07Action&>(*it);
++it; // increment iterator here since the following calls to action.finish() may invalidate it
- if (action.latency_ > 0) {
- if (action.latency_ > delta) {
- double_update(&(action.latency_), delta, sg_surf_precision);
+ if (action.get_latency() > 0) {
+ if (action.get_latency() > delta) {
+ action.update_latency(delta, sg_surf_precision);
} else {
- action.latency_ = 0.0;
+ action.set_latency(0.0);
}
- if ((action.latency_ <= 0.0) && (action.is_suspended() == 0)) {
+ if ((action.get_latency() <= 0.0) && (action.is_suspended() == 0)) {
action.updateBound();
get_maxmin_system()->update_variable_penalty(action.get_variable(), 1.0);
action.set_last_update();
/* Need to check that none of the model has failed */
int i = 0;
- kernel::lmm::Constraint* cnst = action.get_variable()->get_constraint(i);
+ const kernel::lmm::Constraint* cnst = action.get_variable()->get_constraint(i);
while (cnst != nullptr) {
i++;
- kernel::resource::Resource* constraint_id = cnst->get_id();
+ const kernel::resource::Resource* constraint_id = cnst->get_id();
if (not constraint_id->is_on()) {
XBT_DEBUG("Action (%p) Failed!!", &action);
action.finish(kernel::resource::Action::State::FAILED);
kernel::resource::Action* NetworkL07Model::communicate(s4u::Host* src, s4u::Host* dst, double size, double rate)
{
std::vector<s4u::Host*> host_list = {src, dst};
- double* flops_amount = new double[2]();
+ const double* flops_amount = new double[2]();
double* bytes_amount = new double[4]();
bytes_amount[1] = size;
if (policy == s4u::Link::SharingPolicy::FATPIPE)
get_constraint()->unshare();
- s4u::Link::on_creation(this->piface_);
+ s4u::Link::on_creation(*get_iface());
}
kernel::resource::CpuAction* CpuL07::execution_start(double size)
/** @brief take into account changes of speed (either load or max) */
void CpuL07::on_speed_change()
{
- kernel::lmm::Variable* var = nullptr;
+ const kernel::lmm::Variable* var;
const kernel::lmm::Element* elem = nullptr;
get_model()->get_maxmin_system()->update_constraint_bound(get_constraint(), speed_.peak * speed_.scale);
while ((var = get_constraint()->get_variable(&elem))) {
- kernel::resource::Action* action = static_cast<kernel::resource::Action*>(var->get_id());
+ const kernel::resource::Action* action = static_cast<kernel::resource::Action*>(var->get_id());
get_model()->get_maxmin_system()->update_variable_bound(action->get_variable(), speed_.scale * speed_.peak);
}
void LinkL07::set_latency(double value)
{
- kernel::lmm::Variable* var = nullptr;
+ const kernel::lmm::Variable* var;
L07Action *action;
const kernel::lmm::Element* elem = nullptr;
if (communicationAmount_ != nullptr) {
for (size_t i = 0; i < host_count; i++) {
for (size_t j = 0; j < host_count; j++) {
-
if (communicationAmount_[i * host_count + j] > 0) {
double lat = 0.0;
std::vector<kernel::resource::LinkImpl*> route;