X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/45c140b2f84b663b089a89fc47308e13d5f5ff3e..85f2d2b7075a3104ccf23b83f926c0513cac9600:/src/plugins/link_load.cpp diff --git a/src/plugins/link_load.cpp b/src/plugins/link_load.cpp index 5f60b67b8d..1afdd6ea2b 100644 --- a/src/plugins/link_load.cpp +++ b/src/plugins/link_load.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2017-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2017-2023. 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. */ @@ -7,7 +7,8 @@ #include #include "src/kernel/activity/CommImpl.hpp" -#include "src/surf/network_interface.hpp" +#include "src/kernel/resource/NetworkModel.hpp" +#include "src/simgrid/module.hpp" // SIMGRID_REGISTER_PLUGIN #include @@ -32,10 +33,9 @@ SIMGRID_REGISTER_PLUGIN(link_load, "Link cumulated load.", &sg_link_load_plugin_ - Reset the counters on any tracked link via sg_link_load_reset(). */ -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(link_load, surf, "Logging specific to the SURF LinkLoad plugin"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(link_load, kernel, "Logging specific to the LinkLoad plugin"); -namespace simgrid { -namespace plugin { +namespace simgrid::plugin { class LinkLoad { s4u::Link* link_{}; /*< The link onto which this data is attached*/ @@ -67,7 +67,7 @@ public: xbt::Extension LinkLoad::EXTENSION_ID; -LinkLoad::LinkLoad(s4u::Link* ptr) : link_(ptr), is_tracked_(false) +LinkLoad::LinkLoad(s4u::Link* ptr) : link_(ptr) { XBT_DEBUG("Instantiating a LinkLoad for link '%s'", link_->get_cname()); } @@ -156,8 +156,7 @@ double LinkLoad::get_average_bytes() return 0; } -} // namespace plugin -} // namespace simgrid +} // namespace simgrid::plugin using simgrid::plugin::LinkLoad; @@ -183,13 +182,14 @@ static void on_communication(const simgrid::kernel::activity::CommImpl& comm) */ void sg_link_load_plugin_init() { - xbt_assert(simgrid::s4u::Engine::get_instance()->get_host_count() == 0, + xbt_assert(simgrid::s4u::Engine::get_instance()->get_host_count() == 0 && + simgrid::s4u::Engine::get_instance()->get_link_count() == 0, "Please call sg_link_load_plugin_init() BEFORE initializing the platform."); xbt_assert(not LinkLoad::EXTENSION_ID.valid(), "Double call to sg_link_load_plugin_init. Aborting."); LinkLoad::EXTENSION_ID = simgrid::s4u::Link::extension_create(); // Attach new LinkLoad links created in the future. - simgrid::s4u::Link::on_creation.connect([](simgrid::s4u::Link& link) { + simgrid::s4u::Link::on_creation_cb([](simgrid::s4u::Link& link) { if (link.get_sharing_policy() != simgrid::s4u::Link::SharingPolicy::WIFI) { XBT_DEBUG("Wired link '%s' created. Attaching a LinkLoad to it.", link.get_cname()); link.extension_set(new LinkLoad(&link)); @@ -202,24 +202,23 @@ void sg_link_load_plugin_init() simgrid::kernel::activity::CommImpl::on_start.connect(&on_communication); simgrid::kernel::activity::CommImpl::on_completion.connect(&on_communication); - simgrid::s4u::Link::on_state_change.connect([](simgrid::s4u::Link const& link) { + simgrid::s4u::Link::on_state_change_cb([](simgrid::s4u::Link const& link) { if (link.get_sharing_policy() != simgrid::s4u::Link::SharingPolicy::WIFI) { auto link_load = link.extension(); if (link_load->is_tracked()) link_load->update(); } }); - simgrid::s4u::Link::on_communication_state_change.connect( - [](simgrid::kernel::resource::NetworkAction const& action, - simgrid::kernel::resource::Action::State /* previous */) { - for (auto const* link : action.get_links()) { - if (link != nullptr && link->get_sharing_policy() != simgrid::s4u::Link::SharingPolicy::WIFI) { - auto link_load = link->get_iface()->extension(); - if (link_load->is_tracked()) - link_load->update(); - } - } - }); + simgrid::s4u::Link::on_communication_state_change_cb([](simgrid::kernel::resource::NetworkAction const& action, + simgrid::kernel::resource::Action::State /* previous */) { + for (auto const* link : action.get_links()) { + if (link != nullptr && link->get_sharing_policy() != simgrid::s4u::Link::SharingPolicy::WIFI) { + auto link_load = link->get_iface()->extension(); + if (link_load->is_tracked()) + link_load->update(); + } + } + }); } /**