Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use simgrid::Host instead of xbt_dictelt_t for root main object
[simgrid.git] / src / surf / virtual_machine.cpp
index 8f38911..eaac5bb 100644 (file)
 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;
+surf_callback(void, simgrid::surf::VirtualMachine*) VMCreatedCallbacks;
+surf_callback(void, simgrid::surf::VirtualMachine*) VMDestructedCallbacks;
+surf_callback(void, simgrid::surf::VirtualMachine*) VMStateChangedCallbacks;
 
 /*********
  * Model *
@@ -35,10 +38,7 @@ VirtualMachine::VirtualMachine(Model *model, const char *name, xbt_dict_t props,
 : Host(model, name, props, NULL, netElm, cpu)
 {
   VMModel::ws_vms.push_back(*this);
-
-  xbt_lib_set(host_lib, name, SURF_HOST_LEVEL, this);
-
-  surf_callback_emit(VMCreatedCallbacks, this);
+  simgrid::Host::get_host(name)->set_facet(SURF_HOST_LEVEL, this);
 }
 
 /*
@@ -60,9 +60,9 @@ void VirtualMachine::setState(e_surf_resource_state_t state){
  * A surf level object will be useless in the upper layer. Returning the
  * dict_elm of the host.
  **/
-surf_resource_t VirtualMachine::getPm()
+sg_host_t VirtualMachine::getPm()
 {
-  return xbt_lib_get_elm_or_null(host_lib, p_subWs->getName());
+  return simgrid::Host::find_host(p_subWs->getName());
 }
 
 /**********
@@ -71,3 +71,5 @@ surf_resource_t VirtualMachine::getPm()
 
 //FIME:: handle action cancel
 
+}
+}