namespace simgrid {
namespace surf {
-simgrid::xbt::Extension<simgrid::Host, Host> Host::EXTENSION_ID =
- simgrid::Host::extension_create<simgrid::surf::Host>([](void *h) {
- static_cast<simgrid::surf::Host*>(h)->destroy();
- });
+simgrid::xbt::Extension<simgrid::Host, Host> Host::EXTENSION_ID;
/*********
* Model *
/************
* Resource *
************/
-simgrid::surf::signal<void(simgrid::surf::Host*)> Host::onCreation;
-simgrid::surf::signal<void(simgrid::surf::Host*)> Host::onDestruction;
-simgrid::surf::signal<void(simgrid::surf::Host*)> Host::onStateChange;
+simgrid::xbt::signal<void(simgrid::surf::Host*)> Host::onCreation;
+simgrid::xbt::signal<void(simgrid::surf::Host*)> Host::onDestruction;
+simgrid::xbt::signal<void(simgrid::surf::Host*)> Host::onStateChange;
-Host::Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+void Host::classInit()
+{
+ if (!EXTENSION_ID.valid()) {
+ EXTENSION_ID = simgrid::Host::extension_create<simgrid::surf::Host>([](void *h) {
+ static_cast<simgrid::surf::Host*>(h)->destroy();
+ });
+ }
+}
+
+Host::Host(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props,
xbt_dynar_t storage, Cpu *cpu)
: Resource(model, name)
, PropertyHolder(props)
p_params.ramsize = 0;
}
-Host::Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props, lmm_constraint_t constraint,
+Host::Host(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props, lmm_constraint_t constraint,
xbt_dynar_t storage, Cpu *cpu)
: Resource(model, name, constraint)
, PropertyHolder(props)