HostModel() : Model() {}
~HostModel() {}
- virtual Host *createHost(const char *name, RoutingEdge *net, Cpu *cpu, xbt_dict_t props)=0;
+ Host *createHost(const char *name, RoutingEdge *net, Cpu *cpu, xbt_dict_t props);
void addTraces() override {DIE_IMPOSSIBLE;}
virtual void adjustWeightOfDummyCpuActions();
* @brief SURF Host interface class
* @details An host represents a machine with a aggregation of a Cpu, a RoutingEdge and a Storage
*/
-class Host : public simgrid::surf::Resource,
- public simgrid::surf::PropertyHolder {
+class Host :
+ public simgrid::surf::Resource,
+ public simgrid::surf::PropertyHolder {
public:
static simgrid::xbt::Extension<simgrid::Host, Host> EXTENSION_ID;
static simgrid::surf::signal<void(simgrid::surf::Host*, e_surf_resource_state_t, e_surf_resource_state_t)> onStateChange;
public:
- static void classInit();
+ static void classInit(); // must be called before the first use of that class
/**
* @brief Host constructor
*
public:
void attach(simgrid::Host* host);
+
+ e_surf_resource_state_t getState();
void setState(e_surf_resource_state_t state);
/**
* @return The CpuAction corresponding to the processing
* @see Cpu
*/
- virtual Action *execute(double flops_amount)=0;
+ Action *execute(double flops_amount);
/**
* @brief Make a process sleep for duration seconds
* @return The CpuAction corresponding to the sleeping
* @see Cpu
*/
- virtual Action *sleep(double duration)=0;
+ Action *sleep(double duration);
/** @brief Return the storage of corresponding mount point */
virtual simgrid::surf::Storage *findStorageOnMountList(const char* storage);
*/
virtual int fileMove(surf_file_t fd, const char* fullpath);
+ bool isUsed() override {DIE_IMPOSSIBLE;} // FIXME: Host should not be a Resource
+ void updateState(tmgr_trace_event_t event_type, double value, double date) override
+ {THROW_IMPOSSIBLE;} // FIXME: Host should not be a Resource
+
public:
xbt_dynar_t p_storage;
RoutingEdge *p_netElm;
s_vm_params_t p_params;
};
-/**********
- * Action *
- **********/
-
-/** @ingroup SURF_host_interface
- * @brief SURF host action interface class
- */
-class HostAction : public Action {
-public:
- static simgrid::surf::signal<void(simgrid::surf::HostAction*, e_surf_action_state_t, e_surf_action_state_t)> onStateChange;
-
- /**
- * @brief HostAction constructor
- *
- * @param model The HostModel associated to this HostAction
- * @param cost The cost of this HostAction in [TODO]
- * @param failed [description]
- */
- HostAction(simgrid::surf::Model *model, double cost, bool failed)
- : Action(model, cost, failed) {}
-
- /**
- * @brief HostAction constructor
- *
- * @param model The HostModel associated to this HostAction
- * @param cost The cost of this HostAction in [TODO]
- * @param failed [description]
- * @param var The lmm variable associated to this StorageAction if it is part of a LMM component
- */
- HostAction(simgrid::surf::Model *model, double cost, bool failed, lmm_variable_t var)
- : Action(model, cost, failed, var) {}
-
- void setState(e_surf_action_state_t state);
-};
-
}
}