1 /* Copyright (c) 2013-2014. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #include "workstation_interface.hpp"
8 #include "storage_interface.hpp"
9 #include "cpu_interface.hpp"
10 #include "network_interface.hpp"
12 #ifndef SURF_WORKSTATION_CLM03_HPP_
13 #define SURF_WORKSTATION_CLM03_HPP_
19 class WorkstationCLM03Model;
20 typedef WorkstationCLM03Model *WorkstationCLM03ModelPtr;
22 class WorkstationCLM03;
23 typedef WorkstationCLM03 *WorkstationCLM03Ptr;
25 class WorkstationCLM03Action;
26 typedef WorkstationCLM03Action *WorkstationCLM03ActionPtr;
32 class WorkstationCLM03Model : public WorkstationModel {
34 WorkstationCLM03Model();
35 ~WorkstationCLM03Model();
36 WorkstationPtr createWorkstation(const char *name);
37 double shareResources(double now);
39 void updateActionsState(double now, double delta);
41 ActionPtr executeParallelTask(int workstation_nb,
42 void **workstation_list,
46 ActionPtr communicate(WorkstationPtr src, WorkstationPtr dst, double size, double rate);
53 class WorkstationCLM03 : public Workstation {
55 WorkstationCLM03(WorkstationModelPtr model, const char* name, xbt_dict_t properties, xbt_dynar_t storage, RoutingEdgePtr netElm, CpuPtr cpu);
57 void updateState(tmgr_trace_event_t event_type, double value, double date);
59 virtual ActionPtr execute(double size);
60 virtual ActionPtr sleep(double duration);
61 e_surf_resource_state_t getState();
68 void getParams(ws_params_t params);
69 void setParams(ws_params_t params);
79 #endif /* SURF_WORKSTATION_CLM03_HPP_ */