Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
don't free VM's netcard: is not a wrapper anymore but the PM one
[simgrid.git] / src / surf / surf_c_bindings.cpp
index fc630e2..66dc64d 100644 (file)
@@ -19,11 +19,11 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_kernel);
  *********/
 
 static simgrid::surf::Host *get_casted_host(sg_host_t host){
-  return static_cast<simgrid::surf::Host*>(surf_host_resource_priv(host));
+  return host->extension<simgrid::surf::Host>();
 }
 
 static simgrid::surf::VirtualMachine *get_casted_vm(sg_host_t host){
-  return static_cast<simgrid::surf::VirtualMachine*>(surf_host_resource_priv(host));
+  return static_cast<simgrid::surf::VirtualMachine*>(host->extension<simgrid::surf::Host>());
 }
 
 extern double NOW;
@@ -243,12 +243,17 @@ const char *surf_resource_name(surf_cpp_resource_t resource){
   return resource->getName();
 }
 
-e_surf_resource_state_t surf_resource_get_state(surf_cpp_resource_t resource){
-  return resource->getState();
+int surf_resource_is_on(surf_cpp_resource_t resource){
+  return resource->isOn();
 }
-
-void surf_resource_set_state(surf_cpp_resource_t resource, e_surf_resource_state_t state){
-  resource->setState(state);
+int surf_resource_is_off(surf_cpp_resource_t resource){
+  return resource->isOff();
+}
+void surf_resource_turn_on(surf_cpp_resource_t resource){
+  resource->turnOn();
+}
+void surf_resource_turn_off(surf_cpp_resource_t resource){
+  resource->turnOff();
 }
 
 surf_action_t surf_host_sleep(sg_host_t host, double duration){
@@ -377,9 +382,9 @@ void surf_host_set_params(sg_host_t host, vm_params_t params){
   get_casted_host(host)->setParams(params);
 }
 
-void surf_vm_destroy(sg_host_t vm){
+void surf_vm_destroy(sg_host_t vm){ // FIXME:DEADCODE
   vm->p_cpu = nullptr;
-  delete vm->p_netcard;
+  vm->p_netcard = nullptr;
 }
 
 void surf_vm_suspend(sg_host_t vm){
@@ -450,10 +455,6 @@ double surf_action_get_remains(surf_action_t action){
   return action->getRemains();
 }
 
-void surf_action_unref(surf_action_t action){
-  action->unref();
-}
-
 void surf_action_suspend(surf_action_t action){
   action->suspend();
 }
@@ -509,5 +510,5 @@ surf_file_t surf_storage_action_get_file(surf_action_t action){
 }
 
 surf_host_t surf_host_resource_priv(sg_host_t host) {
-  return host->extension(simgrid::surf::Host::EXTENSION_ID);
+  return host->extension<simgrid::surf::Host>();
 }