1 #include "workstation_interface.hpp"
2 #include "storage_interface.hpp"
3 #include "cpu_interface.hpp"
4 #include "network_interface.hpp"
6 #ifndef SURF_WORKSTATION_CLM03_HPP_
7 #define SURF_WORKSTATION_CLM03_HPP_
13 class WorkstationCLM03Model;
14 typedef WorkstationCLM03Model *WorkstationCLM03ModelPtr;
16 class WorkstationCLM03;
17 typedef WorkstationCLM03 *WorkstationCLM03Ptr;
19 class WorkstationCLM03Action;
20 typedef WorkstationCLM03Action *WorkstationCLM03ActionPtr;
26 class WorkstationCLM03Model : public WorkstationModel {
28 WorkstationCLM03Model(const char *name);
29 WorkstationCLM03Model();
30 ~WorkstationCLM03Model();
31 void parseInit(sg_platf_host_cbarg_t host);
32 WorkstationPtr createResource(const char *name);
33 double shareResources(double now);
35 void updateActionsState(double now, double delta);
37 ActionPtr executeParallelTask(int workstation_nb,
38 void **workstation_list,
39 double *computation_amount,
40 double *communication_amount,
42 xbt_dynar_t getRoute(WorkstationPtr src, WorkstationPtr dst);
43 ActionPtr communicate(WorkstationPtr src, WorkstationPtr dst, double size, double rate);
50 class WorkstationCLM03 : public Workstation {
52 WorkstationCLM03(WorkstationModelPtr model, const char* name, xbt_dict_t properties, xbt_dynar_t storage, RoutingEdgePtr netElm, CpuPtr cpu);
54 void updateState(tmgr_trace_event_t event_type, double value, double date);
56 virtual ActionPtr execute(double size);
57 virtual ActionPtr sleep(double duration);
58 e_surf_resource_state_t getState();
65 void getParams(ws_params_t params);
66 void setParams(ws_params_t params);
74 class WorkstationCLM03Action : public WorkstationAction {
76 WorkstationCLM03Action(ModelPtr model, double cost, bool failed)
77 : WorkstationAction(model, cost, failed) {}
81 #endif /* SURF_WORKSTATION_CLM03_HPP_ */