SimGrid  3.21
Versatile Simulation of Distributed Systems
simgrid::vm::VirtualMachineImpl Class Reference

Detailed Description

SURF VM interface class.

A VM represent a virtual machine

#include <VirtualMachineImpl.hpp>

Inherits HostImpl, and simgrid::xbt::Extendable< VirtualMachineImpl >.

Public Member Functions

 VirtualMachineImpl (s4u::VirtualMachine *piface, s4u::Host *host, int core_amount, size_t ramsize)
 
 ~VirtualMachineImpl ()
 A physical host does not disappear in the current SimGrid code, but a VM may disappear during a simulation. More...
 
virtual void suspend (kernel::actor::ActorImpl *issuer)
 
virtual void resume ()
 
virtual void shutdown (kernel::actor::ActorImpl *issuer)
 Power off a VM. More...
 
virtual void set_physical_host (s4u::Host *dest)
 Change the physical host on which the given VM is running. More...
 
s4u::Hostget_physical_host ()
 Get the physical host on which the given VM is running. More...
 
sg_size_t get_ramsize ()
 
void set_ramsize (sg_size_t ramsize)
 
s4u::VirtualMachine::state get_state ()
 
void set_state (s4u::VirtualMachine::state state)
 
int get_core_amount ()
 
virtual void set_bound (double bound)
 
- Public Member Functions inherited from simgrid::xbt::Extendable< VirtualMachineImpl >
 Extendable ()
 
 ~Extendable ()
 
void * extension (std::size_t rank)
 
U * extension (Extension< VirtualMachineImpl, U > rank)
 
U * extension ()
 
void extension_set (std::size_t rank, void *value, bool use_dtor=true)
 
void extension_set (Extension< VirtualMachineImpl, U > rank, U *value, bool use_dtor=true)
 
void extension_set (U *p)
 

Public Attributes

kernel::resource::Actionaction_ = nullptr
 
bool is_migrating_ = false
 

Static Public Attributes

static xbt::signal< void(simgrid::vm::VirtualMachineImpl *)> on_creation
 Callbacks fired after VM creation. More...
 
static xbt::signal< void(simgrid::vm::VirtualMachineImpl *)> on_destruction
 Callbacks fired after VM destruction. More...
 
static xbt::signal< void(simgrid::vm::VirtualMachineImpl *)> on_state_change
 Callbacks after VM State changes. More...
 
static std::deque< s4u::VirtualMachine * > allVms_
 

Additional Inherited Members

- Static Public Member Functions inherited from simgrid::xbt::Extendable< VirtualMachineImpl >
static size_t extension_create (void(*deleter)(void *))
 
static Extension< VirtualMachineImpl, U > extension_create (void(*deleter)(void *))
 
static Extension< VirtualMachineImpl, U > extension_create ()
 

Constructor & Destructor Documentation

◆ VirtualMachineImpl()

simgrid::vm::VirtualMachineImpl::VirtualMachineImpl ( s4u::VirtualMachine piface,
s4u::Host host,
int  core_amount,
size_t  ramsize 
)
explicit

◆ ~VirtualMachineImpl()

simgrid::vm::VirtualMachineImpl::~VirtualMachineImpl ( )

A physical host does not disappear in the current SimGrid code, but a VM may disappear during a simulation.

Member Function Documentation

◆ suspend()

void simgrid::vm::VirtualMachineImpl::suspend ( kernel::actor::ActorImpl *  issuer)
virtual

◆ resume()

void simgrid::vm::VirtualMachineImpl::resume ( )
virtual

◆ shutdown()

void simgrid::vm::VirtualMachineImpl::shutdown ( kernel::actor::ActorImpl *  issuer)
virtual

Power off a VM.

All hosted processes will be killed, but the VM state is preserved on memory. It can later be restarted.

Parameters
issuerthe actor requesting the shutdown

◆ set_physical_host()

void simgrid::vm::VirtualMachineImpl::set_physical_host ( s4u::Host destination)
virtual

Change the physical host on which the given VM is running.

This is an instantaneous migration.

◆ get_physical_host()

s4u::Host* simgrid::vm::VirtualMachineImpl::get_physical_host ( )
inline

Get the physical host on which the given VM is running.

◆ get_ramsize()

sg_size_t simgrid::vm::VirtualMachineImpl::get_ramsize ( )
inline

◆ set_ramsize()

void simgrid::vm::VirtualMachineImpl::set_ramsize ( sg_size_t  ramsize)
inline

◆ get_state()

s4u::VirtualMachine::state simgrid::vm::VirtualMachineImpl::get_state ( )
inline

◆ set_state()

void simgrid::vm::VirtualMachineImpl::set_state ( s4u::VirtualMachine::state  state)
inline

◆ get_core_amount()

int simgrid::vm::VirtualMachineImpl::get_core_amount ( )
inline

◆ set_bound()

void simgrid::vm::VirtualMachineImpl::set_bound ( double  bound)
virtual

Member Data Documentation

◆ on_creation

simgrid::xbt::signal< void(VirtualMachineImpl *)> simgrid::vm::VirtualMachineImpl::on_creation
static

Callbacks fired after VM creation.

Signature: void(VirtualMachineImpl*)

◆ on_destruction

simgrid::xbt::signal< void(VirtualMachineImpl *)> simgrid::vm::VirtualMachineImpl::on_destruction
static

Callbacks fired after VM destruction.

Signature: void(VirtualMachineImpl*)

◆ on_state_change

simgrid::xbt::signal< void(VirtualMachineImpl *)> simgrid::vm::VirtualMachineImpl::on_state_change
static

Callbacks after VM State changes.

Signature: void(VirtualMachineImpl*)

◆ action_

kernel::resource::Action* simgrid::vm::VirtualMachineImpl::action_ = nullptr

◆ allVms_

std::deque< s4u::VirtualMachine * > simgrid::vm::VirtualMachineImpl::allVms_
static

◆ is_migrating_

bool simgrid::vm::VirtualMachineImpl::is_migrating_ = false

The documentation for this class was generated from the following files: