-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
-
-static void IB_create_host_callback(simgrid::s4u::Host const& host)
-{
- using simgrid::kernel::resource::IBNode;
- using simgrid::kernel::resource::NetworkIBModel;
-
- static int id=0;
-
- ((NetworkIBModel*)surf_network_model)->active_nodes.emplace(host.get_name(), IBNode(id));
- id++;
-}
-
-static void IB_action_state_changed_callback(simgrid::kernel::resource::NetworkAction& action,
- simgrid::kernel::resource::Action::State /*previous*/)
-{
- using simgrid::kernel::resource::IBNode;
- using simgrid::kernel::resource::NetworkIBModel;
-
- if (action.get_state() != simgrid::kernel::resource::Action::State::FINISHED)
- return;
- std::pair<IBNode*, IBNode*> pair = ((NetworkIBModel*)surf_network_model)->active_comms[&action];
- XBT_DEBUG("IB callback - action %p finished", &action);
-
- ((NetworkIBModel*)surf_network_model)->updateIBfactors(&action, pair.first, pair.second, 1);
-
- ((NetworkIBModel*)surf_network_model)->active_comms.erase(&action);
-}
-
-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());
-
- ibModel->active_comms[&action] = std::make_pair(act_src, act_dst);
- ibModel->updateIBfactors(&action, act_src, act_dst, 0);
-}