X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/445e892abe9e2f84dc82d712f9d5f97081530d59..7b260a6cdc16e5fe788e15f4f4fb2412c9605263:/src/surf/sg_platf.cpp diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index fa37309f1d..e0bd47a860 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -21,7 +21,7 @@ #include "src/kernel/routing/FatTreeZone.hpp" #include "src/kernel/routing/FloydZone.hpp" #include "src/kernel/routing/FullZone.hpp" -#include "src/kernel/routing/NetCard.hpp" +#include "src/kernel/routing/NetPoint.hpp" #include "src/kernel/routing/NetZoneImpl.hpp" #include "src/kernel/routing/TorusZone.hpp" #include "src/kernel/routing/VivaldiZone.hpp" @@ -65,20 +65,22 @@ void sg_platf_exit() { /** @brief Add an host to the current AS */ void sg_platf_new_host(sg_platf_host_cbarg_t args) { - simgrid::s4u::Host* host = routing_get_current()->createHost(args->id, &args->speed_per_pstate, args->core_amount); - - new simgrid::surf::HostImpl(host, mount_list); - xbt_lib_set(storage_lib, args->id, ROUTING_STORAGE_HOST_LEVEL, static_cast(mount_list)); - mount_list = nullptr; - + std::unordered_map props; if (args->properties) { xbt_dict_cursor_t cursor=nullptr; char *key,*data; xbt_dict_foreach (args->properties, cursor, key, data) - host->setProperty(key, data); + props[key] = data; xbt_dict_free(&args->properties); } + simgrid::s4u::Host* host = + routing_get_current()->createHost(args->id, &args->speed_per_pstate, args->core_amount, &props); + + host->pimpl_->storage_ = mount_list; + xbt_lib_set(storage_lib, args->id, ROUTING_STORAGE_HOST_LEVEL, static_cast(mount_list)); + mount_list = nullptr; + /* Change from the defaults */ if (args->state_trace) host->pimpl_cpu->setStateTrace(args->state_trace); @@ -87,35 +89,32 @@ void sg_platf_new_host(sg_platf_host_cbarg_t args) if (args->pstate != 0) host->pimpl_cpu->setPState(args->pstate); if (args->coord && strcmp(args->coord, "")) - new simgrid::kernel::routing::vivaldi::Coords(host->pimpl_netcard, args->coord); - - simgrid::s4u::Host::onCreation(*host); + 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 */ -simgrid::kernel::routing::NetCard* sg_platf_new_router(const char* name, const char* coords) +simgrid::kernel::routing::NetPoint* sg_platf_new_router(const char* name, const char* coords) { simgrid::kernel::routing::NetZoneImpl* current_routing = routing_get_current(); if (current_routing->hierarchy_ == simgrid::kernel::routing::NetZoneImpl::RoutingMode::unset) current_routing->hierarchy_ = simgrid::kernel::routing::NetZoneImpl::RoutingMode::base; - xbt_assert(nullptr == simgrid::s4u::Engine::instance()->netcardByNameOrNull(name), + xbt_assert(nullptr == simgrid::s4u::Engine::instance()->netpointByNameOrNull(name), "Refusing to create a router named '%s': this name already describes a node.", name); - simgrid::kernel::routing::NetCard* netcard = - new simgrid::kernel::routing::NetCard(name, simgrid::kernel::routing::NetCard::Type::Router, current_routing); - XBT_DEBUG("Router '%s' has the id %d", name, netcard->id()); + simgrid::kernel::routing::NetPoint* netpoint = + new simgrid::kernel::routing::NetPoint(name, simgrid::kernel::routing::NetPoint::Type::Router, current_routing); + XBT_DEBUG("Router '%s' has the id %d", name, netpoint->id()); if (coords && strcmp(coords, "")) - new simgrid::kernel::routing::vivaldi::Coords(netcard, coords); + new simgrid::kernel::routing::vivaldi::Coords(netpoint, coords); - if (TRACE_is_enabled() && TRACE_needs_platform()) - sg_instr_new_router(name, coords); + sg_instr_new_router(name); - return netcard; + return netpoint; } void sg_platf_new_link(sg_platf_link_cbarg_t link){ @@ -556,10 +555,9 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer) std::vector speedPerPstate; speedPerPstate.push_back(peer->speed); - simgrid::s4u::Host* host = as->createHost(peer->id, &speedPerPstate, 1); + simgrid::s4u::Host* host = as->createHost(peer->id, &speedPerPstate, 1, nullptr); - as->setPeerLink(host->pimpl_netcard, peer->bw_in, peer->bw_out, peer->coord); - simgrid::s4u::Host::onCreation(*host); + as->setPeerLink(host->pimpl_netpoint, peer->bw_in, peer->bw_out, peer->coord); /* Change from the defaults */ if (peer->state_trace) @@ -722,8 +720,8 @@ void sg_platf_new_AS_seal() /** @brief Add a link connecting an host to the rest of its AS (which must be cluster or vivaldi) */ void sg_platf_new_hostlink(sg_platf_host_link_cbarg_t hostlink) { - simgrid::kernel::routing::NetCard *netcard = sg_host_by_name(hostlink->id)->pimpl_netcard; - xbt_assert(netcard, "Host '%s' not found!", hostlink->id); + simgrid::kernel::routing::NetPoint* netpoint = sg_host_by_name(hostlink->id)->pimpl_netpoint; + xbt_assert(netpoint, "Host '%s' not found!", hostlink->id); xbt_assert(dynamic_cast(current_routing), "Only hosts from Cluster and Vivaldi ASes can get an host_link."); @@ -735,11 +733,11 @@ void sg_platf_new_hostlink(sg_platf_host_link_cbarg_t hostlink) auto as_cluster = static_cast(current_routing); - if (as_cluster->privateLinks_.find(netcard->id()) != as_cluster->privateLinks_.end()) + if (as_cluster->privateLinks_.find(netpoint->id()) != as_cluster->privateLinks_.end()) surf_parse_error("Host_link for '%s' is already defined!",hostlink->id); - XBT_DEBUG("Push Host_link for host '%s' to position %d", netcard->cname(), netcard->id()); - as_cluster->privateLinks_.insert({netcard->id(), {linkUp, linkDown}}); + XBT_DEBUG("Push Host_link for host '%s' to position %d", netpoint->cname(), netpoint->id()); + as_cluster->privateLinks_.insert({netpoint->id(), {linkUp, linkDown}}); } void sg_platf_new_trace(sg_platf_trace_cbarg_t trace)