X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f9436b840852218b39dce22d6057b6f223168daa..fd7651841882fc2795ff07da448a240dbdc90220:/src/surf/sg_platf.cpp diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 1f0c36b2eb..9079b8c2e2 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -4,6 +4,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "simgrid/s4u/Engine.hpp" +#include "simgrid/s4u/Storage.hpp" #include "src/kernel/EngineImpl.hpp" #include "src/simix/smx_private.h" @@ -28,7 +29,8 @@ #include XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_parse); -XBT_PRIVATE std::map mount_list; +XBT_PRIVATE std::map mount_list; +XBT_PRIVATE std::vector known_storages; namespace simgrid { namespace surf { @@ -98,9 +100,7 @@ void sg_platf_new_host(sg_platf_host_cbarg_t args) host->pimpl_cpu->setPState(args->pstate); if (args->coord && strcmp(args->coord, "")) new simgrid::kernel::routing::vivaldi::Coords(host->pimpl_netpoint, args->coord); - - if (TRACE_is_enabled() && TRACE_needs_platform()) - sg_instr_new_host(*host); + } /** @brief Add a "router" to the network element list */ @@ -364,7 +364,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 +373,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,15 +418,14 @@ 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); if (mount_list.empty()) XBT_DEBUG("Create a Mount list for %s", A_surfxml_host_id); - mount_list.insert( - {std::string(mount->name), surf_storage_resource_priv(surf_storage_resource_by_name(mount->storageId))}); + mount_list.insert({std::string(mount->name), simgrid::surf::StorageImpl::byName(mount->storageId)}); } void sg_platf_new_route(sg_platf_route_cbarg_t route) @@ -663,8 +662,7 @@ simgrid::s4u::NetZone* sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS) /* set the new current component of the tree */ current_routing = new_as; - if (TRACE_is_enabled()) - sg_instr_AS_begin(AS); + simgrid::s4u::NetZone::onCreation(*new_as); // notify the signal return new_as; } @@ -679,10 +677,8 @@ void sg_platf_new_AS_seal() { xbt_assert(current_routing, "Cannot seal the current AS: none under construction"); current_routing->seal(); - current_routing = static_cast(current_routing->father()); - - if (TRACE_is_enabled()) - sg_instr_AS_end(); + simgrid::s4u::NetZone::onSeal(*current_routing); + current_routing = static_cast(current_routing->father()); } /** @brief Add a link connecting an host to the rest of its AS (which must be cluster or vivaldi) */