Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Also fire the on_connect signal for VMs
[simgrid.git] / src / plugins / vm / s4u_VirtualMachine.cpp
index 84e1527..4b1429d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2015-2020. 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. */
@@ -44,6 +44,10 @@ VirtualMachine::VirtualMachine(const std::string& name, s4u::Host* physical_host
   surf_cpu_model_vm->create_cpu(this, speeds, core_amount);
   if (physical_host->get_pstate() != 0)
     set_pstate(physical_host->get_pstate());
+
+  // Real hosts are (only) created through NetZone::create_host(), and this where the on_creation signal is fired.
+  // VMs are created directly, thus firing the signal here. The right solution is probably to separate Host and VM.
+  simgrid::s4u::Host::on_creation(*this);
 }
 
 VirtualMachine::~VirtualMachine()
@@ -122,7 +126,7 @@ void VirtualMachine::destroy()
   Host::destroy();
 }
 
-simgrid::s4u::Host* VirtualMachine::get_pm()
+simgrid::s4u::Host* VirtualMachine::get_pm() const
 {
   return pimpl_vm_->get_physical_host();
 }
@@ -137,7 +141,7 @@ VirtualMachine::state VirtualMachine::get_state()
   return kernel::actor::simcall([this]() { return pimpl_vm_->get_state(); });
 }
 
-size_t VirtualMachine::get_ramsize()
+size_t VirtualMachine::get_ramsize() const
 {
   return pimpl_vm_->get_ramsize();
 }
@@ -203,7 +207,7 @@ const char* sg_vm_get_name(const_sg_vm_t vm)
 }
 
 /** @brief Get the physical host of a given VM. */
-sg_host_t sg_vm_get_pm(sg_vm_t vm)
+sg_host_t sg_vm_get_pm(const_sg_vm_t vm)
 {
   return vm->get_pm();
 }
@@ -213,7 +217,7 @@ void sg_vm_set_ramsize(sg_vm_t vm, size_t size)
   vm->set_ramsize(size);
 }
 
-size_t sg_vm_get_ramsize(sg_vm_t vm)
+size_t sg_vm_get_ramsize(const_sg_vm_t vm)
 {
   return vm->get_ramsize();
 }