/*********
* Tools *
*********/
+
XBT_PUBLIC_DATA(simgrid::surf::HostModel*) surf_host_model;
XBT_PUBLIC(void) host_add_traces();
public:
static simgrid::xbt::Extension<simgrid::Host, Host> EXTENSION_ID;
- /* callbacks */
- static simgrid::surf::signal<void(Host*)> onCreation; /** Called on each newly created object */
- static simgrid::surf::signal<void(Host*)> onDestruction; /** Called just before destructing an object */
- static simgrid::surf::signal<void(Host*)> onStateChange; /** Called when the machine is turned on or off */
-
public:
+ static void classInit(); // must be called before the first use of that class
/**
* @brief Host constructor
*
* @param name The name of the Host
* @param props Dictionary of properties associated to this Host
* @param storage The Storage associated to this Host
- * @param netElm The RoutingEdge associated to this Host
* @param cpu The Cpu associated to this Host
*/
- Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
- xbt_dynar_t storage, NetCard *netElm, Cpu *cpu);
+ Host(HostModel *model, const char *name, xbt_dict_t props,
+ xbt_dynar_t storage, Cpu *cpu);
/**
* @brief Host constructor
* @param props Dictionary of properties associated to this Host
* @param constraint The lmm constraint associated to this Host if it is part of a LMM component
* @param storage The Storage associated to this Host
- * @param netElm The RoutingEdge associated to this Host
* @param cpu The Cpu associated to this Host
*/
- Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
- lmm_constraint_t constraint, xbt_dynar_t storage, NetCard *netElm,
- Cpu *cpu);
+ Host(HostModel *model, const char *name, xbt_dict_t props,
+ lmm_constraint_t constraint, xbt_dynar_t storage, Cpu *cpu);
/* Host destruction logic */
/**************************/
-protected:
~Host();
-public:
- void destroy(); // Must be called instead of the destructor
-private:
- bool currentlyDestroying_ = false;
-
public:
+ HostModel *getModel()
+ {
+ return static_cast<HostModel*>(Resource::getModel());
+ }
void attach(simgrid::Host* host);
bool isOn() override;
public:
xbt_dynar_t p_storage;
- NetCard *p_netElm;
Cpu *p_cpu;
simgrid::Host* p_host = nullptr;