X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1afb6751888eb781f1fa1bc7c98b7c7338308c49..d236809e6149a03ef3e53599458f51c98f79f94d:/src/s4u/s4u_VirtualMachine.cpp diff --git a/src/s4u/s4u_VirtualMachine.cpp b/src/s4u/s4u_VirtualMachine.cpp index df4b90904f..1eea2eec32 100644 --- a/src/s4u/s4u_VirtualMachine.cpp +++ b/src/s4u/s4u_VirtualMachine.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2015-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -32,11 +32,6 @@ void VmHostExt::ensureVmExtInstalled() EXTENSION_ID = Host::extension_create(); } -VirtualMachine::VirtualMachine(const std::string& name, s4u::Host* physical_host, int core_amount) - : VirtualMachine(name, physical_host, core_amount, 1024) -{ -} - 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())) @@ -101,7 +96,7 @@ void VirtualMachine::start() void VirtualMachine::suspend() { on_suspend(*this); - kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self(); + const kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self(); kernel::actor::simcall([this, issuer]() { pimpl_vm_->suspend(issuer); }); } @@ -125,7 +120,7 @@ void VirtualMachine::destroy() shutdown(); XBT_DEBUG("destroy %s", get_cname()); - + on_destruction(*this); /* Then, destroy the VM object */ kernel::actor::simcall([this]() { get_vm_impl()->vm_destroy(); @@ -206,6 +201,18 @@ VirtualMachine* VirtualMachine::set_bound(double bound) return this; } +void VirtualMachine::start_migration() const +{ + pimpl_vm_->start_migration(); + on_migration_start(*this); +} + +void VirtualMachine::end_migration() const +{ + pimpl_vm_->end_migration(); + on_migration_end(*this); +} + } // namespace s4u } // namespace simgrid