Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge with master and fix conflicts
[simgrid.git] / src / surf / storage.c
index 5dd92c0..003c488 100644 (file)
@@ -232,7 +232,7 @@ static void* storage_create_resource(const char* id, const char* model,const cha
 {
   storage_t storage = NULL;
 
-  xbt_assert(!surf_storage_resource_by_name(id),
+  xbt_assert(!surf_storage_resource_priv(surf_storage_resource_by_name(id)),
               "Storage '%s' declared several times in the platform file",
               id);
   storage = (storage_t) surf_resource_new(sizeof(s_storage_t),
@@ -269,13 +269,13 @@ static void* storage_create_resource(const char* id, const char* model,const cha
   return storage;
 }
 
-static void storage_finalize(void)
+static void storage_finalize(surf_model_t storage_model)
 {
   lmm_system_free(storage_maxmin_system);
   storage_maxmin_system = NULL;
 
-  surf_model_exit(surf_storage_model);
-  surf_storage_model = NULL;
+  surf_model_exit(storage_model);
+  storage_model = NULL;
 
   if(storage_list)
     xbt_dynar_free(&storage_list);
@@ -285,11 +285,11 @@ static void storage_finalize(void)
   storage_running_action_set_that_does_not_need_being_checked = NULL;
 }
 
-static void storage_update_actions_state(double now, double delta)
+static void storage_update_actions_state(surf_model_t storage_model, double now, double delta)
 {
   surf_action_storage_t action = NULL;
   surf_action_storage_t next_action = NULL;
-  xbt_swag_t running_actions = surf_storage_model->states.running_action_set;
+  xbt_swag_t running_actions = storage_model->states.running_action_set;
 
   // Update the disk usage
   // Update the file size
@@ -333,7 +333,7 @@ static void storage_update_actions_state(double now, double delta)
   return;
 }
 
-static double storage_share_resources(double NOW)
+static double storage_share_resources(surf_model_t storage_model, double NOW)
 {
   XBT_DEBUG("storage_share_resources %f",NOW);
   s_surf_action_storage_t action;
@@ -341,7 +341,7 @@ static double storage_share_resources(double NOW)
   storage_t storage;
   surf_action_storage_t write_action;
 
-  double min_completion = generic_maxmin_share_resources(surf_storage_model->states.running_action_set,
+  double min_completion = generic_maxmin_share_resources(storage_model->states.running_action_set,
       xbt_swag_offset(action, generic_lmm_action.variable),
       storage_maxmin_system, lmm_solve);
 
@@ -495,6 +495,7 @@ static void surf_storage_model_init_internal(void)
       xbt_swag_new(xbt_swag_offset(action, state_hookup));
 
   surf_storage_model->name = "Storage";
+  surf_storage_model->type = SURF_MODEL_TYPE_STORAGE;
   surf_storage_model->action_unref = storage_action_unref;
   surf_storage_model->action_cancel = storage_action_cancel;
   surf_storage_model->action_state_set = storage_action_state_set;
@@ -518,7 +519,6 @@ static void surf_storage_model_init_internal(void)
   surf_storage_model->extension.storage.stat = storage_action_stat;
   surf_storage_model->extension.storage.unlink = storage_action_unlink;
   surf_storage_model->extension.storage.ls = storage_action_ls;
-  surf_storage_model->extension.storage.create_resource = storage_create_resource;
 
   if (!storage_maxmin_system) {
     storage_maxmin_system = lmm_system_new(storage_selective_update);
@@ -594,21 +594,23 @@ static xbt_dict_t parse_storage_content(char *filename, unsigned long *used_size
 
   surf_stat_t content;
 
-  while ((read = getline(&line, &len, file)) != -1) {
+  while ((read = xbt_getline(&line, &len, file)) != -1) {
+    if (read){
     content = xbt_new0(s_surf_stat_t,1);
     if(sscanf(line,"%s %d %s %s %ld %s %s %s",user_rights,&nb,user,group,&size,date,time,path)==8) {
-      content->stat.date = xbt_strdup(date);
-      content->stat.group = xbt_strdup(group);
-      content->stat.size = size;
-      content->stat.time = xbt_strdup(time);
-      content->stat.user = xbt_strdup(user);
-      content->stat.user_rights = xbt_strdup(user_rights);
-      *used_size += content->stat.size;
-      xbt_dict_set(parse_content,path,content,NULL);
-    } else {
-      xbt_die("Be sure of passing a good format for content file.\n");
-      // You can generate this kind of file with command line:
-      // find /path/you/want -type f -exec ls -l {} \; 2>/dev/null > ./content.txt
+        content->stat.date = xbt_strdup(date);
+        content->stat.group = xbt_strdup(group);
+        content->stat.size = size;
+        content->stat.time = xbt_strdup(time);
+        content->stat.user = xbt_strdup(user);
+        content->stat.user_rights = xbt_strdup(user_rights);
+        *used_size += content->stat.size;
+        xbt_dict_set(parse_content,path,content,NULL);
+      } else {
+        xbt_die("Be sure of passing a good format for content file.\n");
+        // You can generate this kind of file with command line:
+        // find /path/you/want -type f -exec ls -l {} \; 2>/dev/null > ./content.txt
+      }
     }
   }
   if (line)
@@ -674,7 +676,7 @@ static void storage_parse_mount(sg_platf_mount_cbarg_t mount)
   XBT_DEBUG("ROUTING Mount '%s' on '%s'",mount->id, mount->name);
 
   s_mount_t mnt;
-  mnt.id = surf_storage_resource_by_name(mount->id);
+  mnt.id = surf_storage_resource_priv(surf_storage_resource_by_name(mount->id));
   mnt.name = xbt_strdup(mount->name);
 
   if(!mount_list){