-Host::Host(Model *model, const char *name, xbt_dict_t props,
+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*, e_surf_resource_state_t, e_surf_resource_state_t)> Host::onStateChange;
+
+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();
+ });
+ SURF_HOST_LEVEL = EXTENSION_ID.id(); // FIXME: KILLME
+ }
+}
+
+Host::Host(simgrid::surf::Model *model, const char *name, xbt_dict_t props,