X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/29d98d1ceb682fbc4c734a92353be4b0bcd5d17b..d5b29830df70e823202e384a7655e4371193ecd7:/src/surf/instr_routing.cpp diff --git a/src/surf/instr_routing.cpp b/src/surf/instr_routing.cpp index 2baf7b9d96..b14c04da59 100644 --- a/src/surf/instr_routing.cpp +++ b/src/surf/instr_routing.cpp @@ -8,6 +8,7 @@ #include "simgrid/s4u/Engine.hpp" #include "simgrid/s4u/Host.hpp" #include "src/kernel/routing/NetZoneImpl.hpp" +#include "src/kernel/routing/NetPoint.hpp" #include "src/surf/network_interface.hpp" #include "src/surf/xml/platf_private.hpp" #include "surf/surf.h" @@ -162,9 +163,9 @@ static void recursiveGraphExtraction(simgrid::s4u::NetZone* netzone, container_t /* * Callbacks */ -void sg_instr_AS_begin(sg_platf_AS_cbarg_t AS) +static void sg_instr_AS_begin(simgrid::s4u::NetZone& netzone) { - const char*id = AS->id; + const char* id = netzone.name(); if (PJ_container_get_root() == nullptr){ PJ_container_alloc (); @@ -195,7 +196,7 @@ void sg_instr_AS_begin(sg_platf_AS_cbarg_t AS) } } -void sg_instr_AS_end() +static void sg_instr_AS_end(simgrid::s4u::NetZone& /*netzone*/) { if (TRACE_needs_platform()){ currentContainer.pop_back(); @@ -294,11 +295,13 @@ static void sg_instr_new_host(simgrid::s4u::Host& host) } -void sg_instr_new_router(const char* name) +static void sg_instr_new_router(simgrid::kernel::routing::NetPoint * netpoint) { + if (not netpoint->isRouter()) + return; if (TRACE_is_enabled() && TRACE_needs_platform()) { container_t father = currentContainer.back(); - PJ_container_new(name, INSTR_ROUTER, father); + PJ_container_new(netpoint->cname(), INSTR_ROUTER, father); } } @@ -318,13 +321,17 @@ void instr_routing_define_callbacks () { //always need the call backs to ASes (we need only the root AS), //to create the rootContainer and the rootType properly - if (not TRACE_is_enabled() || not TRACE_needs_platform()) + if (not TRACE_is_enabled()) return; - simgrid::s4u::Link::onCreation.connect(instr_routing_parse_start_link); - simgrid::s4u::onPlatformCreated.connect(instr_routing_parse_end_platform); - simgrid::s4u::Host::onCreation.connect(sg_instr_new_host); + if (TRACE_needs_platform()) { + simgrid::s4u::Link::onCreation.connect(instr_routing_parse_start_link); + simgrid::s4u::onPlatformCreated.connect(instr_routing_parse_end_platform); + simgrid::s4u::Host::onCreation.connect(sg_instr_new_host); + } + simgrid::s4u::NetZone::onCreation.connect(sg_instr_AS_begin); + simgrid::s4u::NetZone::onSeal.connect(sg_instr_AS_end); + simgrid::kernel::routing::NetPoint::onCreation.connect(&sg_instr_new_router); } - /* * user categories support */