Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sanitize the surf API
[simgrid.git] / src / surf / cpu_cas01.hpp
index d3e1275..ff12def 100644 (file)
@@ -27,10 +27,10 @@ public:
   CpuCas01Model();
   ~CpuCas01Model();
 
-  Cpu *createCpu(simgrid::Host *host, xbt_dynar_t speedPeak, int pstate,
+  Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak, int pstate,
                    double speedScale,
                           tmgr_trace_t speedTrace, int core,
-                          e_surf_resource_state_t state_initial,
+                          int initiallyOn,
                           tmgr_trace_t state_trace) override;
   double shareResourcesFull(double now) override;
   void addTraces() override;
@@ -43,30 +43,27 @@ public:
 
 class CpuCas01 : public Cpu {
 public:
-  CpuCas01(CpuCas01Model *model, simgrid::Host *host, xbt_dynar_t speedPeak,
+  CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
         int pstate, double speedScale, tmgr_trace_t speedTrace, int core,
-        e_surf_resource_state_t stateInitial, tmgr_trace_t stateTrace) ;
+        int initiallyOn, tmgr_trace_t stateTrace) ;
   ~CpuCas01();
-  void updateState(tmgr_trace_event_t event_type, double value, double date) override;
-  CpuAction *execute(double size) override;
+  void updateState(tmgr_trace_iterator_t event_type, double value) override;
+  CpuAction *execution_start(double size) override;
   CpuAction *sleep(double duration) override;
 
   bool isUsed() override;
-  void setStateEvent(tmgr_trace_event_t stateEvent);
-  void setPowerEvent(tmgr_trace_event_t stateEvent);
 
-  xbt_dynar_t getSpeedPeakList();
-private:
+  xbt_dynar_t getSpeedPeakList(); // FIXME: killme to hide our internals
 
-  tmgr_trace_event_t p_stateEvent;
-  tmgr_trace_event_t p_speedEvent;
+protected:
+  void onSpeedChange() override;
 };
 
 /**********
  * Action *
  **********/
 class CpuCas01Action: public CpuAction {
-  friend CpuAction *CpuCas01::execute(double size);
+  friend CpuAction *CpuCas01::execution_start(double size);
   friend CpuAction *CpuCas01::sleep(double duration);
 public:
   CpuCas01Action(Model *model, double cost, bool failed, double speed,