}
/* Global vars */
-simgrid::kernel::routing::RoutingPlatf *routing_platf = nullptr;
-
+simgrid::kernel::routing::RoutingPlatf* routing_platf = new simgrid::kernel::routing::RoutingPlatf();
void sg_platf_new_trace(sg_platf_trace_cbarg_t trace)
{
AsImpl::getRouteRecursive(src, dst, route, latency);
}
-static xbt_dynar_t _recursiveGetOneLinkRoutes(AsImpl *as)
+std::vector<Onelink*>* RoutingPlatf::getOneLinkRoutes()
{
- xbt_dynar_t ret = xbt_dynar_new(sizeof(Onelink*), xbt_free_f);
-
- //adding my one link routes
- xbt_dynar_t onelink_mine = as->getOneLinkRoutes();
- if (onelink_mine)
- xbt_dynar_merge(&ret,&onelink_mine);
-
- //recursing
- char *key;
- xbt_dict_cursor_t cursor = nullptr;
- AsImpl *rc_child;
- xbt_dict_foreach(as->children(), cursor, key, rc_child) {
- xbt_dynar_t onelink_child = _recursiveGetOneLinkRoutes(rc_child);
- if (onelink_child)
- xbt_dynar_merge(&ret,&onelink_child);
- }
- return ret;
-}
-
-xbt_dynar_t RoutingPlatf::getOneLinkRoutes(){
- return _recursiveGetOneLinkRoutes(root_);
+ std::vector<Onelink*>* res = new std::vector<Onelink*>();
+ root_->getOneLinkRoutes(res);
+ return res;
}
}}}
-/** @brief create the root AS */
-void routing_model_create(Link *loopback)
-{
- routing_platf = new simgrid::kernel::routing::RoutingPlatf(loopback);
-}
-
/* ************************************************************************** */
/* ************************* GENERIC PARSE FUNCTIONS ************************ */
delete routing_platf;
}
-simgrid::kernel::routing::RoutingPlatf::RoutingPlatf(simgrid::surf::Link *loopback)
-: loopback_(loopback)
-{
-}
+simgrid::kernel::routing::RoutingPlatf::RoutingPlatf() = default;
simgrid::kernel::routing::RoutingPlatf::~RoutingPlatf()
{
delete root_;