Storage *StorageN11Model::createStorage(const char* id, const char* type_id, const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach) { xbt_assert(!surf_storage_resource_priv(surf_storage_resource_by_name(id)), "Storage '%s' declared several times in the platform file", id); storage_type_t storage_type = (storage_type_t) xbt_lib_get_or_null(storage_type_lib, type_id,ROUTING_STORAGE_TYPE_LEVEL); double Bread = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bread"), "property Bread, storage",type_id); double Bwrite = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bwrite"), "property Bwrite, storage",type_id); double Bconnection = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bconnection"), "property Bconnection, storage",type_id); Storage *storage = new StorageN11(this, id, properties, maxminSystem_, Bread, Bwrite, Bconnection, type_id, (char *)content_name, content_type, storage_type->size, (char *) attach); storageCreatedCallbacks(storage); xbt_lib_set(storage_lib, id, SURF_STORAGE_LEVEL, storage); XBT_DEBUG("SURF storage create resource\n\t\tid '%s'\n\t\ttype '%s'\n\t\tproperties '%p'\n\t\tBread '%f'\n", id, type_id, properties, Bread); p_storageList.push_back(storage); return storage; }
/* Creates a storage and registers it in SD. */ SD_storage_t __SD_storage_create(void *surf_storage, void *data) { SD_storage_priv_t storage; const char *name; storage = xbt_new(s_SD_storage_priv_t, 1); storage->data = data; /* user data */ name = surf_resource_name(surf_storage); storage->host = surf_storage_get_host(surf_storage_resource_by_name(name)); xbt_lib_set(storage_lib,name, SD_STORAGE_LEVEL, storage); return xbt_lib_get_elm_or_null(storage_lib, name); }