+ kernel::resource::VirtualMachineImpl* const pimpl_vm_;
+
+ /* Signals about the life cycle of the VM */
+ static xbt::signal<void(VirtualMachine&)> on_vm_creation;
+ static xbt::signal<void(VirtualMachine const&)> on_start;
+ static xbt::signal<void(VirtualMachine const&)> on_started;
+ static xbt::signal<void(VirtualMachine const&)> on_shutdown;
+ static xbt::signal<void(VirtualMachine const&)> on_suspend;
+ static xbt::signal<void(VirtualMachine const&)> on_resume;
+ static xbt::signal<void(VirtualMachine const&)> on_migration_start;
+ static xbt::signal<void(VirtualMachine const&)> on_migration_end;
+ static xbt::signal<void(VirtualMachine const&)> on_vm_destruction;
+
+#ifndef DOXYGEN
+ friend kernel::resource::VirtualMachineImpl; // calls signals from Impl
+ friend kernel::resource::HostImpl; // call private constructor
+ explicit VirtualMachine(kernel::resource::VirtualMachineImpl* impl);
+#endif