]> AND Public Git Repository - simgrid.git/blobdiff - src/plugins/link_energy.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Setup argc/argv for the Fortran run-time environment only once.
[simgrid.git] / src / plugins / link_energy.cpp
index 23c4dde639770c80621cc0fb39c6e611ba0c40f2..636b8bf23e08366349df2fcb940336a4ecc5bb33 100644 (file)
@@ -1,14 +1,15 @@
-/* Copyright (c) 2017-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2017-2021. 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. */
 
 #include "simgrid/Exception.hpp"
+#include "simgrid/host.h"
 #include "simgrid/plugins/energy.h"
 #include "simgrid/s4u/Engine.hpp"
+#include "simgrid/simix.hpp"
 #include "src/surf/network_interface.hpp"
 #include "src/surf/surf_interface.hpp"
-#include "surf/surf.hpp"
 
 #include <boost/algorithm/string/classification.hpp>
 #include <boost/algorithm/string/split.hpp>
@@ -44,19 +45,6 @@ namespace simgrid {
 namespace plugin {
 
 class LinkEnergy {
-public:
-  static simgrid::xbt::Extension<simgrid::s4u::Link, LinkEnergy> EXTENSION_ID;
-
-  explicit LinkEnergy(simgrid::s4u::Link* ptr) : link_(ptr), last_updated_(surf_get_clock()) {}
-  ~LinkEnergy() = default;
-
-  void init_watts_range_list();
-  double get_consumed_energy();
-  void update();
-
-private:
-  double get_power() const;
-
   s4u::Link* link_{};
 
   bool inited_{false};
@@ -65,17 +53,28 @@ private:
 
   double total_energy_{0.0};
   double last_updated_{0.0}; /*< Timestamp of the last energy update event*/
+
+  double get_power() const;
+
+public:
+  static xbt::Extension<simgrid::s4u::Link, LinkEnergy> EXTENSION_ID;
+
+  explicit LinkEnergy(s4u::Link* ptr) : link_(ptr), last_updated_(simgrid::s4u::Engine::get_clock()) {}
+
+  void init_watts_range_list();
+  double get_consumed_energy();
+  void update();
 };
 
 xbt::Extension<s4u::Link, LinkEnergy> LinkEnergy::EXTENSION_ID;
 
 void LinkEnergy::update()
 {
-  if (!inited_)
+  if (not inited_)
     init_watts_range_list();
 
   double power = get_power();
-  double now   = surf_get_clock();
+  double now   = simgrid::s4u::Engine::get_clock();
   total_energy_ += power * (now - last_updated_);
   last_updated_ = now;
 }
@@ -125,7 +124,7 @@ void LinkEnergy::init_watts_range_list()
 
 double LinkEnergy::get_power() const
 {
-  if (!inited_)
+  if (not inited_)
     return 0.0;
 
   double power_slope = busy_ - idle_;
@@ -138,7 +137,7 @@ double LinkEnergy::get_power() const
 
 double LinkEnergy::get_consumed_energy()
 {
-  if (last_updated_ < surf_get_clock()) // We need to simcall this as it modifies the environment
+  if (last_updated_ < simgrid::s4u::Engine::get_clock()) // We need to simcall this as it modifies the environment
     kernel::actor::simcall(std::bind(&LinkEnergy::update, this));
   return this->total_energy_;
 }