Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Better fix for the security warning from sonar: hide the char* buffer
[simgrid.git] / src / s4u / s4u_VirtualMachine.cpp
index df4b90904ffe01dc9808043b3f05973f6563686a..1eea2eec324e26528b6cd16b3e04c5203dbecda4 100644 (file)
@@ -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<VmHostExt>();
 }
 
-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<kernel::resource::VirtualMachineImpl*>(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