Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Unify surf action_cost type
[simgrid.git] / src / surf / surf_c_bindings.cpp
index ecae88f..15ab8f7 100644 (file)
@@ -1,9 +1,16 @@
+/* Copyright (c) 2013-2014. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
 #include "surf_interface.hpp"
 #include "workstation_interface.hpp"
 #include "vm_workstation_interface.hpp"
 #include "network_interface.hpp"
 #include "surf_routing_cluster.hpp"
 #include "instr/instr_private.h"
+#include "plugins/energy.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_kernel);
 
@@ -24,7 +31,7 @@ static WorkstationVMPtr get_casted_vm_workstation(surf_resource_t resource){
 }
 
 char *surf_routing_edge_name(sg_routing_edge_t edge){
-  return edge->p_name;
+  return edge->getName();
 }
 
 #ifdef CONTEXT_THREADS
@@ -229,6 +236,7 @@ surf_action_t surf_model_extract_done_action_set(surf_model_t model){
   model->getDoneActionSet()->pop_front();
   return res;
 }
+
 surf_action_t surf_model_extract_failed_action_set(surf_model_t model){
   if (model->getFailedActionSet()->empty())
        return NULL;
@@ -236,6 +244,7 @@ surf_action_t surf_model_extract_failed_action_set(surf_model_t model){
   model->getFailedActionSet()->pop_front();
   return res;
 }
+
 surf_action_t surf_model_extract_ready_action_set(surf_model_t model){
   if (model->getReadyActionSet()->empty())
        return NULL;
@@ -243,6 +252,7 @@ surf_action_t surf_model_extract_ready_action_set(surf_model_t model){
   model->getReadyActionSet()->pop_front();
   return res;
 }
+
 surf_action_t surf_model_extract_running_action_set(surf_model_t model){
   if (model->getRunningActionSet()->empty())
        return NULL;
@@ -334,7 +344,9 @@ void surf_workstation_set_power_peak_at(surf_resource_t resource, int pstate_ind
 }
 
 double surf_workstation_get_consumed_energy(surf_resource_t resource){
-  return get_casted_workstation(resource)->getConsumedEnergy();
+  xbt_assert(surf_energy!=NULL, "The Energy plugin is not active.");
+  std::map<CpuPtr, CpuEnergyPtr>::iterator cpuIt = surf_energy->find(get_casted_workstation(resource)->p_cpu);
+  return cpuIt->second->getConsumedEnergy();
 }
 
 xbt_dict_t surf_workstation_get_storage_list(surf_resource_t workstation){
@@ -517,7 +529,7 @@ e_surf_action_state_t surf_action_get_state(surf_action_t action){
   return action->getState();
 }
 
-int surf_action_get_cost(surf_action_t action){
+double surf_action_get_cost(surf_action_t action){
   return action->getCost();
 }
 
@@ -536,5 +548,3 @@ surf_file_t surf_storage_action_get_file(surf_action_t action){
 xbt_dict_t surf_storage_action_get_ls_dict(surf_action_t action){
   return static_cast<StorageActionPtr>(action)->p_lsDict;
 }
-
-