X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9b4ac8fd04e749d0737479e3b02074be4ad3f2ab..84402e8e2ee2a2d0bef25fdceb0a263ed8b471f6:/src/kernel/routing/DijkstraZone.cpp diff --git a/src/kernel/routing/DijkstraZone.cpp b/src/kernel/routing/DijkstraZone.cpp index a5ad4b57ad..468314da50 100644 --- a/src/kernel/routing/DijkstraZone.cpp +++ b/src/kernel/routing/DijkstraZone.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2020. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -77,7 +77,7 @@ void DijkstraZone::seal() } /* initialize graph indexes in nodes after graph has been built */ - xbt_dynar_t nodes = xbt_graph_get_nodes(route_graph_); + const_xbt_dynar_t nodes = xbt_graph_get_nodes(route_graph_); xbt_dynar_foreach (nodes, cursor, node) { GraphNodeData* data = static_cast(xbt_graph_node_get_data(node)); @@ -107,25 +107,25 @@ void DijkstraZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationAr int src_id = src->id(); int dst_id = dst->id(); - xbt_dynar_t nodes = xbt_graph_get_nodes(route_graph_); + const_xbt_dynar_t nodes = xbt_graph_get_nodes(route_graph_); /* Use the graph_node id mapping set to quickly find the nodes */ - xbt_node_t src_elm = node_map_search(src_id); - xbt_node_t dst_elm = node_map_search(dst_id); + const s_xbt_node_t* src_elm = node_map_search(src_id); + const s_xbt_node_t* dst_elm = node_map_search(dst_id); int src_node_id = static_cast(xbt_graph_node_get_data(src_elm))->graph_id_; int dst_node_id = static_cast(xbt_graph_node_get_data(dst_elm))->graph_id_; /* if the src and dst are the same */ if (src_node_id == dst_node_id) { - xbt_node_t node_s_v = xbt_dynar_get_as(nodes, src_node_id, xbt_node_t); - xbt_node_t node_e_v = xbt_dynar_get_as(nodes, dst_node_id, xbt_node_t); - xbt_edge_t edge = xbt_graph_get_edge(route_graph_, node_s_v, node_e_v); + const s_xbt_node_t* node_s_v = xbt_dynar_get_as(nodes, src_node_id, xbt_node_t); + const s_xbt_node_t* node_e_v = xbt_dynar_get_as(nodes, dst_node_id, xbt_node_t); + const s_xbt_edge_t* edge = xbt_graph_get_edge(route_graph_, node_s_v, node_e_v); if (edge == nullptr) throw std::invalid_argument(xbt::string_printf("No route from '%s' to '%s'", src->get_cname(), dst->get_cname())); - RouteCreationArgs* e_route = static_cast(xbt_graph_edge_get_data(edge)); + const RouteCreationArgs* e_route = static_cast(xbt_graph_edge_get_data(edge)); for (auto const& link : e_route->link_list) { route->link_list.insert(route->link_list.begin(), link); @@ -162,15 +162,15 @@ void DijkstraZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationAr while (not pqueue.empty()) { int v_id = pqueue.top().second; pqueue.pop(); - xbt_node_t v_node = xbt_dynar_get_as(nodes, v_id, xbt_node_t); + const s_xbt_node_t* v_node = xbt_dynar_get_as(nodes, v_id, xbt_node_t); xbt_edge_t edge = nullptr; unsigned int cursor; xbt_dynar_foreach (xbt_graph_node_get_outedges(v_node), cursor, edge) { - xbt_node_t u_node = xbt_graph_edge_get_target(edge); - GraphNodeData* data = static_cast(xbt_graph_node_get_data(u_node)); + const s_xbt_node_t* u_node = xbt_graph_edge_get_target(edge); + const GraphNodeData* data = static_cast(xbt_graph_node_get_data(u_node)); int u_id = data->graph_id_; - RouteCreationArgs* tmp_e_route = static_cast(xbt_graph_edge_get_data(edge)); + const RouteCreationArgs* tmp_e_route = static_cast(xbt_graph_edge_get_data(edge)); int cost_v_u = tmp_e_route->link_list.size(); /* count of links, old model assume 1 */ if (cost_v_u + cost_arr[v_id] < cost_arr[u_id]) { @@ -187,16 +187,16 @@ void DijkstraZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationAr NetPoint* first_gw = nullptr; for (int v = dst_node_id; v != src_node_id; v = pred_arr[v]) { - xbt_node_t node_pred_v = xbt_dynar_get_as(nodes, pred_arr[v], xbt_node_t); - xbt_node_t node_v = xbt_dynar_get_as(nodes, v, xbt_node_t); - xbt_edge_t edge = xbt_graph_get_edge(route_graph_, node_pred_v, node_v); + const s_xbt_node_t* node_pred_v = xbt_dynar_get_as(nodes, pred_arr[v], xbt_node_t); + const s_xbt_node_t* node_v = xbt_dynar_get_as(nodes, v, xbt_node_t); + const s_xbt_edge_t* edge = xbt_graph_get_edge(route_graph_, node_pred_v, node_v); if (edge == nullptr) throw std::invalid_argument(xbt::string_printf("No route from '%s' to '%s'", src->get_cname(), dst->get_cname())); - RouteCreationArgs* e_route = static_cast(xbt_graph_edge_get_data(edge)); + const RouteCreationArgs* e_route = static_cast(xbt_graph_edge_get_data(edge)); - NetPoint* prev_gw_src = gw_src; + const NetPoint* prev_gw_src = gw_src; gw_src = e_route->gw_src; NetPoint* gw_dst = e_route->gw_dst;