-/* Copyright (c) 2014-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2014-2021. 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. */
static void IB_action_init_callback(simgrid::kernel::resource::NetworkAction& action)
{
- simgrid::kernel::resource::NetworkIBModel* ibModel = (simgrid::kernel::resource::NetworkIBModel*)surf_network_model;
- simgrid::kernel::resource::IBNode* act_src = &ibModel->active_nodes.at(action.get_src().get_name());
- simgrid::kernel::resource::IBNode* act_dst = &ibModel->active_nodes.at(action.get_dst().get_name());
+ auto* ibModel = static_cast<simgrid::kernel::resource::NetworkIBModel*>(surf_network_model);
+ auto* act_src = &ibModel->active_nodes.at(action.get_src().get_name());
+ auto* act_dst = &ibModel->active_nodes.at(action.get_dst().get_name());
ibModel->active_comms[&action] = std::make_pair(act_src, act_dst);
ibModel->updateIBfactors(&action, act_src, act_dst, 0);
}
}
-void NetworkIBModel::computeIBfactors(IBNode* root)
+void NetworkIBModel::computeIBfactors(IBNode* root) const
{
double num_comm_out = root->ActiveCommsUp.size();
double max_penalty_out = 0.0;
XBT_DEBUG("Finished computing IB penalties");
}
-void NetworkIBModel::updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist)
+void NetworkIBModel::updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist) const
{
if (not updatedlist[root->id]) {
XBT_DEBUG("IB - Updating rec %d", root->id);
}
}
-void NetworkIBModel::updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove)
+void NetworkIBModel::updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove) const
{
if (from == to) // disregard local comms (should use loopback)
return;
to->ActiveCommsDown[from] -= 1;
to->nbActiveCommsDown--;
- std::vector<ActiveComm*>::iterator it =
- std::find_if(begin(from->ActiveCommsUp), end(from->ActiveCommsUp),
- [action](const ActiveComm* comm) { return comm->action == action; });
+ auto it = std::find_if(begin(from->ActiveCommsUp), end(from->ActiveCommsUp),
+ [action](const ActiveComm* comm) { return comm->action == action; });
if (it != std::end(from->ActiveCommsUp)) {
delete *it;
from->ActiveCommsUp.erase(it);
action->unref();
} else {
action->ref();
- ActiveComm* comm = new ActiveComm();
+ auto* comm = new ActiveComm();
comm->action = action;
comm->destination = to;
from->ActiveCommsUp.push_back(comm);