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 "storage_interface.hpp"
8 #include "cpu_interface.hpp"
9 #include "host_interface.hpp"
10 #include "network_interface.hpp"
12 #ifndef SURF_HOST_CLM03_HPP_
13 #define SURF_HOST_CLM03_HPP_
20 typedef HostCLM03Model *HostCLM03ModelPtr;
23 typedef HostCLM03 *HostCLM03Ptr;
25 class HostCLM03Action;
26 typedef HostCLM03Action *HostCLM03ActionPtr;
32 class HostCLM03Model : public HostModel {
36 HostPtr createHost(const char *name);
37 double shareResources(double now);
39 void updateActionsState(double now, double delta);
41 ActionPtr executeParallelTask(int host_nb,
46 ActionPtr communicate(HostPtr src, HostPtr dst, double size, double rate);
53 class HostCLM03 : public Host {
55 HostCLM03(HostModelPtr 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_HOST_CLM03_HPP_ */