X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9104957deccc59e0e804215d5db498fabfd40d29..f3b7e5f4b4d7c87ee3e8827313ec966ea8fc8387:/src/kernel/routing/RoutedZone.cpp diff --git a/src/kernel/routing/RoutedZone.cpp b/src/kernel/routing/RoutedZone.cpp index 60fbeb0304..7619377b18 100644 --- a/src/kernel/routing/RoutedZone.cpp +++ b/src/kernel/routing/RoutedZone.cpp @@ -17,12 +17,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_routing_generic, surf_route, "Generic imple /* ***************************************************************** */ /* *********************** GENERIC METHODS ************************* */ -static const char* instr_node_name(const s_xbt_node_t* node) -{ - const void* data = xbt_graph_node_get_data(node); - return static_cast(data); -} - xbt_node_t new_xbt_graph_node(const s_xbt_graph_t* graph, const char* name, std::map* nodes) { auto elm = nodes->find(name); @@ -37,8 +31,8 @@ xbt_node_t new_xbt_graph_node(const s_xbt_graph_t* graph, const char* name, std: xbt_edge_t new_xbt_graph_edge(const s_xbt_graph_t* graph, xbt_node_t s, xbt_node_t d, std::map* edges) { - const char* sn = instr_node_name(s); - const char* dn = instr_node_name(d); + const auto* sn = static_cast(xbt_graph_node_get_data(s)); + const auto* dn = static_cast(xbt_graph_node_get_data(d)); std::string name = std::string(sn) + dn; auto elm = edges->find(name); @@ -74,7 +68,7 @@ void RoutedZone::get_graph(const s_xbt_graph_t* graph, std::map& link_list, bool /* symmetrical */, - bool change_order) +RouteCreationArgs* RoutedZone::new_extended_route(RoutingMode hierarchy, NetPoint* gw_src, NetPoint* gw_dst, + const std::vector& link_list, + bool preserve_order) { - RouteCreationArgs* result = new RouteCreationArgs(); + auto* result = new RouteCreationArgs(); xbt_assert(hierarchy == RoutingMode::base || hierarchy == RoutingMode::recursive, "The hierarchy of this netzone is neither BASIC nor RECURSIVE, I'm lost here."); @@ -138,18 +131,16 @@ RouteCreationArgs* RoutedZone::new_extended_route(RoutingMode hierarchy, NetPoin result->gw_dst = gw_dst; } - for (auto const& link : link_list) { - if (change_order) - result->link_list.push_back(link); - else - result->link_list.insert(result->link_list.begin(), link); - } + if (preserve_order) + result->link_list = link_list; + else + result->link_list.assign(link_list.rbegin(), link_list.rend()); // reversed result->link_list.shrink_to_fit(); return result; } -void RoutedZone::get_route_check_params(NetPoint* src, NetPoint* dst) +void RoutedZone::get_route_check_params(NetPoint* src, NetPoint* dst) const { xbt_assert(src, "Cannot find a route from nullptr to %s", dst->get_cname()); xbt_assert(dst, "Cannot find a route from %s to nullptr", src->get_cname()); @@ -167,7 +158,7 @@ void RoutedZone::get_route_check_params(NetPoint* src, NetPoint* dst) src->get_cname(), dst->get_cname(), src_as->get_cname(), dst_as->get_cname(), get_cname()); } void RoutedZone::add_route_check_params(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst, - const std::vector& link_list, bool symmetrical) + const std::vector& link_list, bool symmetrical) const { const char* srcName = src->get_cname(); const char* dstName = dst->get_cname(); @@ -178,10 +169,10 @@ void RoutedZone::add_route_check_params(NetPoint* src, NetPoint* dst, NetPoint* xbt_assert(dst, "Cannot add a route from %s to %s: %s does not exist.", srcName, dstName, dstName); xbt_assert(not link_list.empty(), "Empty route (between %s and %s) forbidden.", srcName, dstName); xbt_assert(not src->is_netzone(), - "When defining a route, src cannot be a netzone such as '%s'. Did you meant to have an NetzoneRoute?", + "When defining a route, src cannot be a netzone such as '%s'. Did you meant to have a NetzoneRoute?", srcName); xbt_assert(not dst->is_netzone(), - "When defining a route, dst cannot be a netzone such as '%s'. Did you meant to have an NetzoneRoute?", + "When defining a route, dst cannot be a netzone such as '%s'. Did you meant to have a NetzoneRoute?", dstName); } else { XBT_DEBUG("Load NetzoneRoute from %s@%s to %s@%s", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname()); @@ -193,7 +184,7 @@ void RoutedZone::add_route_check_params(NetPoint* src, NetPoint* dst, NetPoint* xbt_assert(gw_dst->is_host() || gw_dst->is_router(), "When defining a NetzoneRoute, gw_dst must be a host or a router but '%s' is not.", dstName); - xbt_assert(gw_src != gw_dst, "Cannot define an NetzoneRoute from '%s' to itself", gw_src->get_cname()); + xbt_assert(gw_src != gw_dst, "Cannot define a NetzoneRoute from '%s' to itself", gw_src->get_cname()); xbt_assert(src, "Cannot add a route from %s@%s to %s@%s: %s does not exist.", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname(), srcName);