X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/18080b8f80c81ed30600da55f774a52cbd1101f8..c148703b3bc52cbdb36b738add851aecddb28490:/src/s4u/s4u_VirtualMachine.cpp diff --git a/src/s4u/s4u_VirtualMachine.cpp b/src/s4u/s4u_VirtualMachine.cpp index b0bb7576aa..f607ad859c 100644 --- a/src/s4u/s4u_VirtualMachine.cpp +++ b/src/s4u/s4u_VirtualMachine.cpp @@ -12,9 +12,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_vm, s4u, "S4U virtual machines"); -namespace simgrid { -namespace s4u { -xbt::signal VirtualMachine::on_creation; +namespace simgrid::s4u { +xbt::signal VirtualMachine::on_vm_creation; xbt::signal VirtualMachine::on_start; xbt::signal VirtualMachine::on_started; xbt::signal VirtualMachine::on_shutdown; @@ -22,7 +21,7 @@ xbt::signal VirtualMachine::on_suspend; xbt::signal VirtualMachine::on_resume; xbt::signal VirtualMachine::on_migration_start; xbt::signal VirtualMachine::on_migration_end; -xbt::signal VirtualMachine::on_destruction; +xbt::signal VirtualMachine::on_vm_destruction; xbt::Extension VmHostExt::EXTENSION_ID; @@ -35,6 +34,12 @@ void VmHostExt::ensureVmExtInstalled() VirtualMachine::VirtualMachine(const std::string& name, s4u::Host* physical_host, int core_amount, size_t ramsize) : Host(new kernel::resource::VirtualMachineImpl(name, this, physical_host, core_amount, ramsize)) , pimpl_vm_(dynamic_cast(Host::get_impl())) +{ + physical_host->get_impl()->create_vm(name, this); +} + +VirtualMachine::VirtualMachine(kernel::resource::VirtualMachineImpl* impl) + : Host(impl), pimpl_vm_(dynamic_cast(Host::get_impl())) { } @@ -67,7 +72,7 @@ void VirtualMachine::destroy() shutdown(); XBT_DEBUG("destroy %s", get_cname()); - on_destruction(*this); + on_vm_destruction(*this); /* Then, destroy the VM object */ kernel::actor::simcall_answered( [this]() { get_vm_impl()->get_physical_host()->get_impl()->destroy_vm(get_name()); }); @@ -152,8 +157,7 @@ void VirtualMachine::end_migration() const pimpl_vm_->end_migration(); } -} // namespace s4u -} // namespace simgrid +} // namespace simgrid::s4u /* **************************** Public C interface *************************** */