From 5c1c8c7b586fa9740c5e55b3f4e38137e8dac711 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Wed, 24 May 2017 01:14:13 +0200 Subject: [PATCH] one level less in the last lib --- include/surf/surf_routing.h | 1 - src/surf/sg_platf.cpp | 9 +++++---- src/surf/storage_interface.cpp | 1 - src/surf/storage_n11.cpp | 7 +------ 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/include/surf/surf_routing.h b/include/surf/surf_routing.h index 83fa79e6a6..2d19df1798 100644 --- a/include/surf/surf_routing.h +++ b/include/surf/surf_routing.h @@ -14,7 +14,6 @@ SG_BEGIN_DECL() // FIXME: this header file should die XBT_PUBLIC_DATA(xbt_lib_t) storage_lib; -XBT_PUBLIC_DATA(int) ROUTING_STORAGE_LEVEL; //Routing storage level XBT_PUBLIC_DATA(int) SURF_STORAGE_LEVEL; // Surf storage level SG_END_DECL() diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 1f0c36b2eb..d369a11524 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -29,6 +29,7 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_parse); XBT_PRIVATE std::map mount_list; +XBT_PRIVATE std::vector known_storages; namespace simgrid { namespace surf { @@ -364,7 +365,7 @@ void sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet) void sg_platf_new_storage(sg_platf_storage_cbarg_t storage) { - xbt_assert(not xbt_lib_get_or_null(storage_lib, storage->id, ROUTING_STORAGE_LEVEL), + xbt_assert(std::find(known_storages.begin(), known_storages.end(), storage->id) == known_storages.end(), "Refusing to add a second storage named \"%s\"", storage->id); xbt_assert(storage_types.find(storage->type_id) != storage_types.end(), "No storage type '%s'", storage->type_id); @@ -373,7 +374,7 @@ void sg_platf_new_storage(sg_platf_storage_cbarg_t storage) XBT_DEBUG("ROUTING Create a storage name '%s' with type_id '%s' and content '%s'", storage->id, storage->type_id, storage->content); - xbt_lib_set(storage_lib, storage->id, ROUTING_STORAGE_LEVEL, (void *) xbt_strdup(storage->type_id)); + known_storages.push_back(storage->id); // if storage content is not specified use the content of storage_type if any if (not strcmp(storage->content, "") && strcmp(stype->content, "")) { @@ -418,8 +419,8 @@ void sg_platf_new_storage_type(sg_platf_storage_type_cbarg_t storage_type) } void sg_platf_new_mount(sg_platf_mount_cbarg_t mount){ - xbt_assert(xbt_lib_get_or_null(storage_lib, mount->storageId, ROUTING_STORAGE_LEVEL), - "Cannot mount non-existent disk \"%s\"", mount->storageId); + xbt_assert(std::find(known_storages.begin(), known_storages.end(), mount->storageId) != known_storages.end(), + "Cannot mount non-existent disk \"%s\"", mount->storageId); XBT_DEBUG("ROUTING Mount '%s' on '%s'",mount->storageId, mount->name); diff --git a/src/surf/storage_interface.cpp b/src/surf/storage_interface.cpp index 0f2308a515..d0c8e8f98d 100644 --- a/src/surf/storage_interface.cpp +++ b/src/surf/storage_interface.cpp @@ -15,7 +15,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_storage, surf, "Logging specific to the SUR xbt_lib_t storage_lib; int MSG_STORAGE_LEVEL = -1; // Msg storage level -int ROUTING_STORAGE_LEVEL = -1; // Routing for storage level int SURF_STORAGE_LEVEL = -1; simgrid::surf::StorageModel *surf_storage_model = nullptr; diff --git a/src/surf/storage_n11.cpp b/src/surf/storage_n11.cpp index 62e5b9edfe..688d59aae8 100644 --- a/src/surf/storage_n11.cpp +++ b/src/surf/storage_n11.cpp @@ -36,7 +36,6 @@ void storage_register_callbacks() simgrid::s4u::onPlatformCreated.connect(check_disk_attachment); instr_routing_define_callbacks(); - ROUTING_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, xbt_free_f); SURF_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, [](void *self) { delete static_cast(self); }); @@ -58,10 +57,6 @@ namespace surf { Storage* StorageN11Model::createStorage(const char* id, const char* type_id, const char* content_name, const char* attach) { - - xbt_assert(not 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_types.at(type_id); double Bread = @@ -71,8 +66,8 @@ Storage* StorageN11Model::createStorage(const char* id, const char* type_id, con Storage* storage = new StorageN11(this, id, maxminSystem_, Bread, Bwrite, type_id, (char*)content_name, storage_type->size, (char*)attach); - storageCreatedCallbacks(storage); xbt_lib_set(storage_lib, id, SURF_STORAGE_LEVEL, storage); + storageCreatedCallbacks(storage); XBT_DEBUG("SURF storage create resource\n\t\tid '%s'\n\t\ttype '%s'\n\t\tBread '%f'\n", id, type_id, Bread); -- 2.20.1