Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s/NULL/nullptr/ in our C++ codebase
[simgrid.git] / src / surf / cpu_interface.hpp
index 5716541..4a3f3b2 100644 (file)
@@ -4,8 +4,19 @@
 /* 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 <list>
+
+#include <xbt/base.h>
+#include <xbt/dynar.h>
+#include <xbt/signal.hpp>
+
+#include <simgrid/forward.h>
+#include <simgrid/s4u/host.hpp>
+
+#include "surf/datatypes.h"
 #include "surf_interface.hpp"
 #include "maxmin_private.hpp"
+#include "trace_mgr.hpp"
 
 #ifndef SURF_CPU_INTERFACE_HPP_
 #define SURF_CPU_INTERFACE_HPP_
@@ -29,6 +40,7 @@ class CpuPlugin;// FIXME:DEADCODE
 XBT_PUBLIC_CLASS CpuModel : public Model {
 public:
   CpuModel() : Model() {};
+  ~CpuModel() override;
 
   /**
    * @brief Create a Cpu
@@ -39,9 +51,9 @@ public:
    */
   virtual Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPerPstate, int core)=0;
 
-  void updateActionsStateLazy(double now, double delta);
-  void updateActionsStateFull(double now, double delta);
-  bool next_occuring_event_isIdempotent() {return true;}
+  void updateActionsStateLazy(double now, double delta) override;
+  void updateActionsStateFull(double now, double delta) override;
+  bool next_occuring_event_isIdempotent() override;
 };
 
 /************
@@ -107,10 +119,9 @@ public:
   /** @brief Get the available speed of the current Cpu */
   virtual double getAvailableSpeed();
 
-  /** @brief Get the current Cpu power peak */
-  virtual double getCurrentPowerPeak();
-
-  virtual double getPowerPeakAt(int pstate_index);
+  /** @brief Get the current Cpu computational speed */
+  virtual double getPstateSpeedCurrent();
+  virtual double getPstateSpeed(int pstate_index);
 
   virtual int getNbPStates();
   virtual void setPState(int pstate_index);
@@ -122,12 +133,12 @@ public:
   int coresAmount_ = 1;
   simgrid::s4u::Host* host_;
 
-  xbt_dynar_t speedPerPstate_ = NULL; /*< List of supported CPU capacities (pstate related) */
+  xbt_dynar_t speedPerPstate_ = nullptr; /*< List of supported CPU capacities (pstate related) */
   int pstate_ = 0;                   /*< Current pstate (index in the speedPeakList)*/
 
   /* Note (hypervisor): */
-  lmm_constraint_t *p_constraintCore=NULL;
-  void **p_constraintCoreId=NULL;
+  lmm_constraint_t *p_constraintCore=nullptr;
+  void **p_constraintCoreId=nullptr;
 
 public:
   virtual void setStateTrace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF). Trace must contain boolean values (0 or 1). */
@@ -162,7 +173,7 @@ public:
 
   void setState(simgrid::surf::Action::State state) override;
 
-  void updateRemainingLazy(double now);
+  void updateRemainingLazy(double now) override;
   std::list<Cpu*> cpus();
 };