class CpuCas01Model : public simgrid::surf::CpuModel {
public:
CpuCas01Model();
- ~CpuCas01Model();
+ ~CpuCas01Model() override;
- Cpu *createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
- tmgr_trace_t speedTrace, int core, tmgr_trace_t state_trace) override;
- double next_occuring_event_full(double now) override;
+ Cpu *createCpu(simgrid::s4u::Host *host, std::vector<double> *speedPerPstate, int core) override;
ActionList *p_cpuRunningActionSetThatDoesNotNeedBeingChecked;
};
class CpuCas01 : public Cpu {
public:
- CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
- tmgr_trace_t speedTrace, int core, tmgr_trace_t stateTrace) ;
- ~CpuCas01();
- void apply_event(tmgr_trace_iterator_t event, double value) override;
+ CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, std::vector<double> *speedPerPstate, int core);
+ ~CpuCas01() override;
+ void apply_event(tmgr_trace_event_t event, double value) override;
CpuAction *execution_start(double size) override;
+ CpuAction* execution_start(double size, int requestedCore) override;
CpuAction *sleep(double duration) override;
bool isUsed() override;
- xbt_dynar_t getSpeedPeakList(); // FIXME: killme to hide our internals
+ std::vector<double> * getSpeedPeakList(); // FIXME: killme to hide our internals
protected:
void onSpeedChange() override;
friend CpuAction *CpuCas01::execution_start(double size);
friend CpuAction *CpuCas01::sleep(double duration);
public:
- CpuCas01Action(Model *model, double cost, bool failed, double speed,
- lmm_constraint_t constraint);
+ CpuCas01Action(Model* model, double cost, bool failed, double speed, lmm_constraint_t constraint, int coreAmount);
+ CpuCas01Action(Model *model, double cost, bool failed, double speed, lmm_constraint_t constraint);
+ ~CpuCas01Action() override;
+ int requestedCore();
- ~CpuCas01Action() {};
+private:
+ int requestedCore_ = 1;
};
}