Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
here was the leak!
[simgrid.git] / src / msg / msg_host.c
index f6e96e2..2b797aa 100644 (file)
@@ -352,22 +352,24 @@ xbt_dict_t MSG_host_get_storage_list(msg_host_t host)
 /** \ingroup msg_host_management
  * \brief Return the content of mounted storages on an host.
  * \param host a host
- * \return a dynar containing content (as a dict) of all storages mounted on the host
+ * \return a dict containing content (as a dict) of all storages mounted on the host
  */
-xbt_dynar_t MSG_host_get_storage_content(msg_host_t host)
+xbt_dict_t MSG_host_get_storage_content(msg_host_t host)
 {
   xbt_assert((host != NULL), "Invalid parameters");
-  xbt_dynar_t contents = xbt_dynar_new(sizeof(void *),NULL);
-//  msg_storage_t storage;
-//  char* storage_name;
-//  unsigned int i;
-//  xbt_dynar_t storage_list = simcall_host_get_storage_list(host);
-//  xbt_dynar_foreach(storage_list, i, storage_name){
-//     storage = xbt_lib_get_elm_or_null(storage_lib,storage_name);
-//
-//     XBT_INFO("STORAGE NAME: %s", storage_name);
-//     xbt_dict_t content = simcall_storage_get_content(storage);
-//     xbt_dynar_push(contents, &content);
-//  }
+  xbt_dict_t contents = xbt_dict_new_homogeneous(NULL);
+  msg_storage_t storage;
+  char* storage_name;
+  char* mount_name;
+  xbt_dict_cursor_t cursor = NULL;
+
+  xbt_dict_t storage_list = simcall_host_get_storage_list(host);
+
+  xbt_dict_foreach(storage_list,cursor,mount_name,storage_name){
+    storage = (msg_storage_t)xbt_lib_get_elm_or_null(storage_lib,storage_name);
+    xbt_dict_t content = simcall_storage_get_content(storage);
+    xbt_dict_set(contents,mount_name, content,NULL);
+  }
+  xbt_dict_free(&storage_list);
   return contents;
 }