#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"
/*
* 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 ();
}
}
-void sg_instr_AS_end()
+static void sg_instr_AS_end(simgrid::s4u::NetZone& /*netzone*/)
{
if (TRACE_needs_platform()){
currentContainer.pop_back();
}
}
-void sg_instr_new_host(simgrid::s4u::Host& host)
+static void sg_instr_new_host(simgrid::s4u::Host& host)
{
container_t father = currentContainer.back();
container_t container = PJ_container_new(host.cname(), INSTR_HOST, father);
}
-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);
}
}
{
//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);
+ 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
*/