3 #ifndef SURF_MODEL_CPU_H_
4 #define SURF_MODEL_CPU_H_
10 typedef CpuModel *CpuModelPtr;
16 typedef CpuAction *CpuActionPtr;
21 class CpuModel : public Model {
23 CpuModel(string name) : Model(name) {};
24 CpuPtr createResource(string name);
26 virtual void addTraces() =0;
32 class Cpu : public Resource {
34 Cpu(CpuModelPtr model, string name, xbt_dict_t properties) : Resource(model, name, properties) {};
35 CpuActionPtr execute(double size);
36 CpuActionPtr sleep(double duration);
37 e_surf_resource_state_t getState();
39 double getSpeed(double load);
40 double getAvailableSpeed();
45 //virtual boost::shared_ptr<Action> execute(double size) = 0;
46 //virtual boost::shared_ptr<Action> sleep(double duration) = 0;
52 class CpuAction : public Action {
54 CpuAction(ModelPtr model, double cost, bool failed): Action(model, cost, failed) {};
57 #endif /* SURF_MODEL_CPU_H_ */