virtual Cpu *createCpu(simgrid::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)=0;
void updateActionsStateLazy(double now, double delta);
*/
XBT_PUBLIC_CLASS Cpu : public simgrid::surf::Resource {
public:
- static simgrid::xbt::Extension<simgrid::Host, Cpu> EXTENSION_ID;
- static void classInit();
- Cpu();
-
/**
* @brief Cpu constructor
*
Cpu(simgrid::surf::Model *model, simgrid::Host *host, lmm_constraint_t constraint,
xbt_dynar_t speedPeakList, int pstate,
int core, double speedPeak, double speedScale,
- e_surf_resource_state_t stateInitial);
+ int initiallyOn);
/**
* @brief Cpu constructor
Cpu(simgrid::surf::Model *model, simgrid::Host *host,
xbt_dynar_t speedPeakList, int pstate,
int core, double speedPeak, double speedScale,
- e_surf_resource_state_t stateInitial);
-
- Cpu(simgrid::surf::Model *model, simgrid::Host *host, lmm_constraint_t constraint,
- xbt_dynar_t speedPeakList, int pstate,
- int core, double speedPeak, double speedScale);
- Cpu(simgrid::surf::Model *model, simgrid::Host *host,
- xbt_dynar_t speedPeakList, int pstate,
- int core, double speedPeak, double speedScale);
+ int initiallyOn);
~Cpu();
/** @brief Get the speed, accounting for the trace load and provided process load instead of the real current one */
virtual double getSpeed(double load);
+protected:
+ /** @brief Take speed changes (either load or max) into account */
+ virtual void onSpeedChange();
+
+public:
/** @brief Get the available speed of the current Cpu */
virtual double getAvailableSpeed();
/** @brief Callbacks handler which emit the callbacks after CpuAction State changed *
* @details Callback functions have the following signature: `void(CpuAction *action, e_surf_action_state_t old, e_surf_action_state_t current)`
*/
- static simgrid::surf::signal<void(simgrid::surf::CpuAction*, e_surf_action_state_t, e_surf_action_state_t)> onStateChange;
+ static simgrid::xbt::signal<void(simgrid::surf::CpuAction*, e_surf_action_state_t, e_surf_action_state_t)> onStateChange;
/** @brief CpuAction constructor */
CpuAction(simgrid::surf::Model *model, double cost, bool failed)
- : Action(model, cost, failed) {} //FIXME:REMOVE
+ : Action(model, cost, failed) {} //FIXME:DEADCODE?
/** @brief CpuAction constructor */
CpuAction(simgrid::surf::Model *model, double cost, bool failed, lmm_variable_t var)