Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[CR] Minor improvement.
[simgrid.git] / src / surf / cpu_ti.hpp
index 4d6cd17..c84ee89 100644 (file)
@@ -3,10 +3,10 @@
 /* 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. */
 
-#ifndef SURF_MODEL_CPUTI_H_
-#define SURF_MODEL_CPUTI_H_
+#ifndef SURF_MODEL_CPUTI_HPP_
+#define SURF_MODEL_CPUTI_HPP_
 
-#include "cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
 #include "src/kernel/resource/profile/Profile.hpp"
 #include <boost/intrusive/list.hpp>
 #include <memory>
@@ -20,20 +20,24 @@ namespace resource {
  ***********/
 class XBT_PRIVATE CpuTiModel;
 class XBT_PRIVATE CpuTi;
+class XBT_PRIVATE CpuTiAction;
 
-/*********
- * Trace *
- *********/
+/***********
+ * Profile *
+ ***********/
 class CpuTiProfile {
+  std::vector<double> time_points_;
+  std::vector<double> integral_;
+
 public:
   explicit CpuTiProfile(const profile::Profile* profile);
 
+  const std::vector<double>& get_time_points() const { return time_points_; }
+
   double integrate_simple(double a, double b) const;
   double integrate_simple_point(double a) const;
   double solve_simple(double a, double amount) const;
 
-  std::vector<double> time_points_;
-  std::vector<double> integral_;
   static long binary_search(const std::vector<double>& array, double a);
 };
 
@@ -42,6 +46,15 @@ class CpuTiTmgr {
     FIXED,  /*< Trace fixed, no availability file */
     DYNAMIC /*< Dynamic, have an availability file */
   };
+  Type type_ = Type::FIXED;
+  double value_; /*< Percentage of cpu speed available. Value fixed between 0 and 1 */
+
+  /* Dynamic */
+  double last_time_ = 0.0; /*< Integral interval last point (discrete time) */
+  double total_     = 0.0; /*< Integral total between 0 and last point */
+
+  std::unique_ptr<CpuTiProfile> profile_ = nullptr;
+  profile::Profile* speed_profile_       = nullptr;
 
 public:
   explicit CpuTiTmgr(double value) : value_(value){};
@@ -52,17 +65,6 @@ public:
   double integrate(double a, double b) const;
   double solve(double a, double amount) const;
   double get_power_scale(double a) const;
-
-private:
-  Type type_ = Type::FIXED;
-  double value_;                 /*< Percentage of cpu speed available. Value fixed between 0 and 1 */
-
-  /* Dynamic */
-  double last_time_ = 0.0;             /*< Integral interval last point (discrete time) */
-  double total_     = 0.0;             /*< Integral total between 0 and last point */
-
-  std::unique_ptr<CpuTiProfile> profile_ = nullptr;
-  profile::Profile* speed_profile_       = nullptr;
 };
 
 /**********
@@ -154,4 +156,4 @@ public:
 } // namespace kernel
 } // namespace simgrid
 
-#endif /* SURF_MODEL_CPUTI_H_ */
+#endif /* SURF_MODEL_CPUTI_HPP_ */