/* 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. */
#include "simgrid/plugins/energy.h"
#include "simgrid/s4u/Engine.hpp"
/* 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. */
#include "simgrid/plugins/energy.h"
#include "simgrid/s4u/Engine.hpp"
boost::split(current_power_values, current_power_values_str, boost::is_any_of(":"));
xbt_assert(current_power_values.size() == 2,
"Power properties incorrectly defined - could not retrieve idle and busy power values for link %s",
boost::split(current_power_values, current_power_values_str, boost::is_any_of(":"));
xbt_assert(current_power_values.size() == 2,
"Power properties incorrectly defined - could not retrieve idle and busy power values for link %s",
/* min_power corresponds to the idle power (link load = 0) */
/* max_power is the power consumed at 100% link load */
/* min_power corresponds to the idle power (link load = 0) */
/* max_power is the power consumed at 100% link load */
- char* idleMsg = bprintf("Invalid idle power value for link%s", this->link_->getCname());
- char* busyMsg = bprintf("Invalid busy power value for %s", this->link_->getCname());
+ char* idleMsg = bprintf("Invalid idle power value for link%s", this->link_->get_cname());
+ char* busyMsg = bprintf("Invalid busy power value for %s", this->link_->get_cname());
idle_ = xbt_str_parse_double((current_power_values.at(0)).c_str(), idleMsg);
busy_ = xbt_str_parse_double((current_power_values.at(1)).c_str(), busyMsg);
idle_ = xbt_str_parse_double((current_power_values.at(0)).c_str(), idleMsg);
busy_ = xbt_str_parse_double((current_power_values.at(1)).c_str(), busyMsg);
using simgrid::plugin::LinkEnergy;
/* **************************** events callback *************************** */
using simgrid::plugin::LinkEnergy;
/* **************************** events callback *************************** */
-static void onCommunicate(simgrid::surf::NetworkAction* action, simgrid::s4u::Host* src, simgrid::s4u::Host* dst)
+static void onCommunicate(simgrid::kernel::resource::NetworkAction* action, simgrid::s4u::Host* src,
+ simgrid::s4u::Host* dst)
double total_energy = 0.0; // Total dissipated energy (whole platform)
for (const auto link : links) {
double total_energy = 0.0; // Total dissipated energy (whole platform)
for (const auto link : links) {
XBT_INFO("Total energy over all links: %f", total_energy);
}
/* **************************** Public interface *************************** */
XBT_INFO("Total energy over all links: %f", total_energy);
}
/* **************************** Public interface *************************** */
simgrid::s4u::Link::onCreation.connect([](simgrid::s4u::Link& link) {
link.extension_set(new LinkEnergy(&link));
});
simgrid::s4u::Link::onCreation.connect([](simgrid::s4u::Link& link) {
link.extension_set(new LinkEnergy(&link));
});
- if (strcmp(link.getCname(), "__loopback__"))
- XBT_INFO("Energy consumption of link '%s': %f Joules", link.getCname(),
+ if (strcmp(link.get_cname(), "__loopback__"))
+ XBT_INFO("Energy consumption of link '%s': %f Joules", link.get_cname(),
- simgrid::s4u::Link::onCommunicationStateChange.connect([](simgrid::surf::NetworkAction* action) {
- for (simgrid::surf::LinkImpl* link : action->links()) {
+ simgrid::s4u::Link::onCommunicationStateChange.connect([](simgrid::kernel::resource::NetworkAction* action) {
+ for (simgrid::kernel::resource::LinkImpl* link : action->links()) {
if (link != nullptr)
link->piface_.extension<LinkEnergy>()->update();
}
});
simgrid::s4u::Link::onCommunicate.connect(&onCommunicate);
if (link != nullptr)
link->piface_.extension<LinkEnergy>()->update();
}
});
simgrid::s4u::Link::onCommunicate.connect(&onCommunicate);