- xbt_dynar_t storages = xbt_dynar_new(sizeof(msg_host_t), NULL);
- xbt_dynar_t hosts;
- msg_host_t host;
- unsigned int i;
-
- hosts = MSG_hosts_as_dynar();
- xbt_dynar_foreach(hosts, i, host){
- xbt_dynar_push(storages,xbt_lib_get_level((void *)host, SURF_STORAGE_LEVEL));
+ xbt_lib_cursor_t cursor;
+ char *key;
+ void **data;
+ xbt_dynar_t res = xbt_dynar_new(sizeof(msg_storage_t),NULL);
+ msg_storage_t storage;
+ xbt_lib_foreach(storage_lib, cursor, key, data) {
+ if(routing_get_network_element_type(key) == ROUTING_STORAGE_LEVEL) {
+ xbt_dictelm_t elm = xbt_dict_cursor_get_elm(cursor);
+ storage = xbt_new(s_msg_storage_t, 1);
+ storage->name = elm->key;
+ storage->simdata = xbt_new0(s_simdata_storage_t,1);
+ smx_storage_t simix_storage = xbt_lib_get_or_null(storage_lib, elm->key, SURF_STORAGE_LEVEL);
+ storage->simdata->smx_storage = simix_storage;
+ storage->data = NULL;
+ xbt_dynar_push(res, &storage);
+ }