X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/98a167fa2243c248259017276314ff93c8e841fe..347f9a2ca55bffc88bf965952b9be3a15535e908:/src/surf/virtual_machine.cpp diff --git a/src/surf/virtual_machine.cpp b/src/surf/virtual_machine.cpp index 0f2de4d551..dd64c88b51 100644 --- a/src/surf/virtual_machine.cpp +++ b/src/surf/virtual_machine.cpp @@ -10,15 +10,18 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_vm, surf, "Logging specific to the SURF VM module"); -VMModel *surf_vm_model = NULL; +simgrid::surf::VMModel *surf_vm_model = NULL; + +namespace simgrid { +namespace surf { /************* * Callbacks * *************/ -surf_callback(void, VirtualMachine*) VMCreatedCallbacks; -surf_callback(void, VirtualMachine*) VMDestructedCallbacks; -surf_callback(void, VirtualMachine*) VMStateChangedCallbacks; +simgrid::surf::signal VMCreatedCallbacks; +simgrid::surf::signal VMDestructedCallbacks; +simgrid::surf::signal VMStateChangedCallbacks; /********* * Model * @@ -30,13 +33,12 @@ VMModel::vm_list_t VMModel::ws_vms; * Resource * ************/ -VirtualMachine::VirtualMachine(Model *model, const char *name, xbt_dict_t props, - RoutingEdge *netElm, Cpu *cpu) -: Host(model, name, props, NULL, netElm, cpu) +VirtualMachine::VirtualMachine(Model *model, const char *name, xbt_dict_t props,simgrid::Host *hostPM) +: Host(model, name, props, NULL, NULL, NULL) +, p_hostPM(hostPM) { VMModel::ws_vms.push_back(*this); - - xbt_lib_set(host_lib, name, SURF_HOST_LEVEL, this); + simgrid::Host::by_name_or_create(name)->extension_set(this); } /* @@ -45,27 +47,19 @@ VirtualMachine::VirtualMachine(Model *model, const char *name, xbt_dict_t props, */ VirtualMachine::~VirtualMachine() { - surf_callback_emit(VMDestructedCallbacks, this); + VMDestructedCallbacks(this); VMModel::ws_vms.erase(VMModel::vm_list_t::s_iterator_to(*this)); } void VirtualMachine::setState(e_surf_resource_state_t state){ Resource::setState(state); - surf_callback_emit(VMStateChangedCallbacks, this); + VMStateChangedCallbacks(this); } -/* - * A surf level object will be useless in the upper layer. Returning the - * dict_elm of the host. - **/ -surf_resource_t VirtualMachine::getPm() -{ - return xbt_lib_get_elm_or_null(host_lib, p_subWs->getName()); +/** @brief returns the physical machine on which the VM is running **/ +sg_host_t VirtualMachine::getPm() { + return p_hostPM; } -/********** - * Action * - **********/ - -//FIME:: handle action cancel - +} +}