Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Working on SimDag.
[simgrid.git] / src / simdag / sd_workstation.c
index 65c8032..38ffb85 100644 (file)
@@ -1,16 +1,7 @@
 #include "simdag/simdag.h"
 #include "xbt/dict.h"
 #include "xbt/sysdep.h"
-/*#include "private.h"*/
-
-static xbt_dict_t workstations;  /* workstation list */
-static int workstation_count; /* number of workstations */
-
-  void *data;
-  char *name;
-  double power;
-  double available_power;
-  /* TODO: route */
+#include "private.h"
 
 /* Creates a workstation.
  */
@@ -22,8 +13,8 @@ SG_workstation_t SG_workstation_create(void *data, const char *name, double powe
   
   workstation->data = data;
   workstation->name = xbt_strdup(name);
-  workstation->power = power;
-  workstation->available_power = power;
+  /*workstation->power = power;
+  workstation->available_power = power;*/
   /* TODO: route */
 
   return workstation;
@@ -32,22 +23,24 @@ SG_workstation_t SG_workstation_create(void *data, const char *name, double powe
 /* Returns a workstation given its name, or NULL if there is no such workstation.
  */
 SG_workstation_t SG_workstation_get_by_name(const char *name) {
-  xbt_assert0(name, "Invalid parameter");
+  xbt_assert0(sg_global != NULL, "SG_init not called yet");
+  xbt_assert0(name != NULL, "Invalid parameter");
 
-  return xbt_dict_get_or_null(workstations, name);
+  return xbt_dict_get_or_null(sg_global->workstations, name);
 }
 
 /* Returns a NULL-terminated array of existing workstations.
  */
 SG_workstation_t*  SG_workstation_get_list(void) {
-  SG_workstation_t* array = xbt_new0(SG_workstation_t, workstation_count + 1);
+  xbt_assert0(sg_global != NULL, "SG_init not called yet");
+  SG_workstation_t* array = xbt_new0(SG_workstation_t, sg_global->workstation_count + 1);
   
   xbt_dict_cursor_t cursor;
   char *key;
   void *data;
   int i=0;
 
-  xbt_dict_foreach(workstations,cursor,key,data) {
+  xbt_dict_foreach(sg_global->workstations,cursor,key,data) {
     array[i++] = (SG_workstation_t) data;
   }
   array[i] = NULL;
@@ -58,27 +51,28 @@ SG_workstation_t*  SG_workstation_get_list(void) {
 /* Returns the number or workstations.
  */
 int SG_workstation_get_number(void) {
-  return workstation_count;
+  xbt_assert0(sg_global != NULL, "SG_init not called yet");
+  return sg_global->workstation_count;
 }
 
 /* Sets the data of a workstation.
  */
 void SG_workstation_set_data(SG_workstation_t workstation, void *data) {
-  xbt_assert0(workstation, "Invalid parameter");
+  xbt_assert0(workstation != NULL, "Invalid parameter");
   workstation->data = data;
 }
 
 /* Returns the data of a workstation.
  */
 void* SG_workstation_get_data(SG_workstation_t workstation) {
-  xbt_assert0(workstation, "Invalid parameter");
+  xbt_assert0(workstation != NULL, "Invalid parameter");
   return workstation->data;
 }
 
 /* Returns the name of a workstation.
  */
 const char* SG_workstation_get_name(SG_workstation_t workstation) {
-  xbt_assert0(workstation, "Invalid parameter");
+  xbt_assert0(workstation != NULL, "Invalid parameter");
   return workstation->name;
 }
 
@@ -95,21 +89,25 @@ int SG_workstation_route_get_size(SG_workstation_t src, SG_workstation_t dst) {
 /* Returns the total power of a workstation.
  */
 double SG_workstation_get_power(SG_workstation_t workstation) {
-  xbt_assert0(workstation, "Invalid parameter");
-  return workstation->power;
+  xbt_assert0(workstation != NULL, "Invalid parameter");
+  /* TODO */
+  return 0;
+  /*  return workstation->power;*/
 }
 
 /* Return the available power of a workstation.
  */
 double SG_workstation_get_available_power(SG_workstation_t workstation) {
-  xbt_assert0(workstation, "Invalid parameter");
-  return workstation->available_power;
+  xbt_assert0(workstation != NULL, "Invalid parameter");
+  /* TODO */
+  return 0;
+  /*return workstation->available_power;*/
 }
 
 /* Destroys a workstation. The user data (if any) should have been destroyed first.
  */
 void SG_workstation_destroy(SG_workstation_t workstation) {
-  xbt_assert0(workstation, "Invalid parameter");
+  xbt_assert0(workstation != NULL, "Invalid parameter");
 
   if (workstation->name)
     free(workstation->name);