X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cc9460b0958168a1f9adec8208d190bf128ce6cc..b6fcc4129a6eee8ac3e7e7db57062b6a5dd8bf51:/src/surf/virtual_machine.cpp diff --git a/src/surf/virtual_machine.cpp b/src/surf/virtual_machine.cpp index 1666df5034..dfb0d1afdb 100644 --- a/src/surf/virtual_machine.cpp +++ b/src/surf/virtual_machine.cpp @@ -39,8 +39,8 @@ VirtualMachine::VirtualMachine(HostModel *model, const char *name, simgrid::s4u: , hostPM_(hostPM) { allVms_.push_back(this); - piface = simgrid::s4u::Host::by_name_or_create(name); - piface->extension_set(this); + piface_ = simgrid::s4u::Host::by_name_or_create(name); + piface_->extension_set(this); } /* @@ -57,11 +57,11 @@ VirtualMachine::~VirtualMachine() } e_surf_vm_state_t VirtualMachine::getState() { - return p_vm_state; + return vmState_; } void VirtualMachine::setState(e_surf_vm_state_t state) { - p_vm_state = state; + vmState_ = state; } void VirtualMachine::turnOn() { if (isOff()) { @@ -75,6 +75,31 @@ void VirtualMachine::turnOff() { onVmStateChange(this); } } +void VirtualMachine::suspend() +{ + action_->suspend(); + vmState_ = SURF_VM_STATE_SUSPENDED; +} + +void VirtualMachine::resume() +{ + action_->resume(); + vmState_ = SURF_VM_STATE_RUNNING; +} + +void VirtualMachine::save() +{ + vmState_ = SURF_VM_STATE_SAVING; + action_->suspend(); + vmState_ = SURF_VM_STATE_SAVED; +} + +void VirtualMachine::restore() +{ + vmState_ = SURF_VM_STATE_RESTORING; + action_->resume(); + vmState_ = SURF_VM_STATE_RUNNING; +} /** @brief returns the physical machine on which the VM is running **/ sg_host_t VirtualMachine::getPm() {