X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a96adb51dabc0c759af11e60c770355f22a54ef3..2807fde4fd1f59c230d69a934634c5dfb77905f2:/src/surf/plugins/host_load.cpp?ds=sidebyside diff --git a/src/surf/plugins/host_load.cpp b/src/surf/plugins/host_load.cpp index f1e039a858..3d5a901e56 100644 --- a/src/surf/plugins/host_load.cpp +++ b/src/surf/plugins/host_load.cpp @@ -106,13 +106,6 @@ void HostLoad::reset() using simgrid::plugin::HostLoad; /* **************************** events callback *************************** */ -static void on_host_added(simgrid::s4u::Host& host) -{ - if (dynamic_cast(&host)) // Ignore virtual machines - return; - host.extension_set(new HostLoad(&host)); -} - /* This callback is fired either when the host changes its state (on/off) or its speed * (because the user changed the pstate, or because of external trace events) */ static void onHostChange(simgrid::s4u::Host& host) @@ -120,12 +113,11 @@ static void onHostChange(simgrid::s4u::Host& host) if (dynamic_cast(&host)) // Ignore virtual machines return; - HostLoad* host_load = host.extension(); - host_load->update(); + host.extension()->update(); } /* This callback is called when an action (computation, idle, ...) terminates */ -static void onActionStateChange(simgrid::surf::CpuAction* action, simgrid::surf::Action::State previous) +static void onActionStateChange(simgrid::surf::CpuAction* action, simgrid::surf::Action::State /*previous*/) { for (simgrid::surf::Cpu* const& cpu : action->cpus()) { simgrid::s4u::Host* host = cpu->getHost(); @@ -152,7 +144,14 @@ void sg_host_load_plugin_init() HostLoad::EXTENSION_ID = simgrid::s4u::Host::extension_create(); - simgrid::s4u::Host::onCreation.connect(&on_host_added); + /* When attaching a callback into a signal, you can use a lambda as follows, or a regular function as done below */ + + simgrid::s4u::Host::onCreation.connect([](simgrid::s4u::Host& host) { + if (dynamic_cast(&host)) // Ignore virtual machines + return; + host.extension_set(new HostLoad(&host)); + }); + simgrid::surf::CpuAction::onStateChange.connect(&onActionStateChange); simgrid::s4u::Host::onStateChange.connect(&onHostChange); simgrid::s4u::Host::onSpeedChange.connect(&onHostChange);