Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
include cleanups (mostly surf/surf.hpp)
[simgrid.git] / src / plugins / link_energy_wifi.cpp
index 9396746..dca8c04 100644 (file)
@@ -3,17 +3,17 @@
 /* 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/Exception.hpp"
-#include "simgrid/plugins/energy.h"
-#include "simgrid/s4u/Engine.hpp"
-#include "simgrid/s4u/Host.hpp"
-#include "simgrid/s4u/Link.hpp"
+#include <simgrid/Exception.hpp>
+#include <simgrid/plugins/energy.h>
+#include <simgrid/s4u/Engine.hpp>
+#include <simgrid/s4u/Host.hpp>
+#include <simgrid/s4u/Link.hpp>
+#include <xbt/config.hpp>
+
 #include "src/surf/network_interface.hpp"
 #include "src/surf/network_wifi.hpp"
 #include "src/surf/surf_interface.hpp"
-#include "surf/surf.hpp"
 #include "src/kernel/lmm/maxmin.hpp"
-#include "xbt/config.hpp"
 
 #include <boost/algorithm/string/classification.hpp>
 #include <boost/algorithm/string/split.hpp>
@@ -104,8 +104,8 @@ xbt::Extension<s4u::Link, LinkEnergyWifi> LinkEnergyWifi::EXTENSION_ID;
 void LinkEnergyWifi::update_destroy()
 {
   auto const* wifi_link = static_cast<kernel::resource::NetworkWifiLink*>(link_->get_impl());
-  double duration       = surf_get_clock() - prev_update_;
-  prev_update_          = surf_get_clock();
+  double duration       = simgrid::s4u::Engine::get_clock() - prev_update_;
+  prev_update_          = simgrid::s4u::Engine::get_clock();
 
   dur_idle_ += duration;
 
@@ -120,8 +120,8 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&)
 {
   init_watts_range_list();
 
-  double duration = surf_get_clock() - prev_update_;
-  prev_update_    = surf_get_clock();
+  double duration = simgrid::s4u::Engine::get_clock() - prev_update_;
+  prev_update_    = simgrid::s4u::Engine::get_clock();
 
   // we don't update for null durations
   if(duration < 1e-6)
@@ -143,11 +143,10 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&)
   double durUsage = 0;
   while (const auto* var = wifi_link->get_constraint()->get_variable(&elem)) {
     auto* action = static_cast<kernel::resource::NetworkWifiAction*>(var->get_id());
-    XBT_DEBUG("cost: %f action value: %f link rate 1: %f link rate 2: %f", action->get_cost(),
-              action->get_variable()->get_value(), wifi_link->get_host_rate(&action->get_src()),
-              wifi_link->get_host_rate(&action->get_dst()));
+    XBT_DEBUG("cost: %f action value: %f link rate 1: %f link rate 2: %f", action->get_cost(), action->get_rate(),
+              wifi_link->get_host_rate(&action->get_src()), wifi_link->get_host_rate(&action->get_dst()));
 
-    if(action->get_variable()->get_value()) {
+    if (action->get_rate() != 0.0) {
       auto it = flowTmp.find(action);
 
       // if the flow has not been registered, initialize it: 0 bytes sent, and not updated since its creation timestamp
@@ -161,18 +160,18 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&)
        * If this is longer than the duration since the previous update, active duration = now - previous_update
        */
       double du = // durUsage on the current flow
-          (action->get_cost() - it->second.first) / action->get_variable()->get_value();
+          (action->get_cost() - it->second.first) / action->get_rate();
 
-      if(du > surf_get_clock()-it->second.second)
-        du = surf_get_clock()-it->second.second;
+      if (du > simgrid::s4u::Engine::get_clock() - it->second.second)
+        du = simgrid::s4u::Engine::get_clock() - it->second.second;
 
       // if the flow has been more active than the others
       if(du > durUsage)
         durUsage = du;
 
       // update the amount of data already sent by the flow
-      it->second.first += du*action->get_variable()->get_value();
-      it->second.second =  surf_get_clock();
+      it->second.first += du * action->get_rate();
+      it->second.second = simgrid::s4u::Engine::get_clock();
 
       // important: if the transmission finished, remove it (needed for performance and multi-message flows)
       if(it->second.first >= action->get_cost())
@@ -191,13 +190,13 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&)
    *  - if idle i.e. get_usage = 0, update P_{stat}
    * P_{tot} = P_{dyn}+P_{stat}
    */
-  if(link_->get_usage()){
+  if (link_->get_usage() != 0.0) {
     eDyn_ += /*duration * */ durUsage * ((wifi_link->get_host_count() * pRx_) + pTx_);
     eStat_ += (duration - durUsage) * pIdle_ * (wifi_link->get_host_count() + 1);
     XBT_DEBUG("eDyn +=  %f * ((%d * %f) + %f) | eDyn = %f (durusage =%f)", durUsage, wifi_link->get_host_count(), pRx_,
               pTx_, eDyn_, durUsage);
     dur_TxRx_ += duration;
-  }else{
+  } else {
     dur_idle_ += duration;
     eStat_ += (duration - (duration * control_duration_)) * pIdle_ * (wifi_link->get_host_count() + 1);
   }