X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/281f8c29e177852dcb1591fc31e363e1176857c8..191e4e2f00fb2f5fecb9f648f195b47a5ec61682:/src/surf/surf_routing_dijkstra.cpp diff --git a/src/surf/surf_routing_dijkstra.cpp b/src/surf/surf_routing_dijkstra.cpp index d3ae3358d5..b535cf2e4d 100644 --- a/src/surf/surf_routing_dijkstra.cpp +++ b/src/surf/surf_routing_dijkstra.cpp @@ -5,14 +5,12 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "surf_routing_dijkstra.hpp" -#include "network.hpp" +#include "network_interface.hpp" /* Global vars */ extern routing_platf_t routing_platf; -extern "C" { XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_dijkstra, surf, "Routing part of surf -- dijkstra routing logic"); -} /* Free functions */ @@ -184,7 +182,7 @@ xbt_dynar_t AsDijkstra::getOnelinkRoutes() int src,dst; RoutingEdgePtr src_elm, dst_elm; - size_t table_size = xbt_dynar_length(p_indexNetworkElm); + int table_size = (int)xbt_dynar_length(p_indexNetworkElm); for(src=0; src < table_size; src++) { for(dst=0; dst< table_size; dst++) { xbt_dynar_reset(route->link_list); @@ -258,7 +256,7 @@ void AsDijkstra::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_p xbt_dynar_foreach(links, cpt, link) { xbt_dynar_unshift(route->link_list, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += dynamic_cast(static_cast(link))->getLatency(); } } @@ -366,7 +364,7 @@ void AsDijkstra::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_p xbt_dynar_foreach(links, cpt, link) { xbt_dynar_insert_at(route->link_list, pos, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += dynamic_cast(static_cast(link))->getLatency(); pos++; } } @@ -375,7 +373,7 @@ void AsDijkstra::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_p xbt_dynar_foreach(links, cpt, link) { xbt_dynar_unshift(route->link_list, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += dynamic_cast(static_cast(link))->getLatency(); } size++; } @@ -409,10 +407,17 @@ AsDijkstra::~AsDijkstra() /* Creation routing model functions */ -AsDijkstra::AsDijkstra() : AsGeneric(), m_cached(0) {} +AsDijkstra::AsDijkstra() : AsGeneric(), m_cached(0) { + p_routeGraph = NULL; + p_graphNodeMap = NULL; + p_routeCache = NULL; +} AsDijkstra::AsDijkstra(int cached) : AsGeneric(), m_cached(cached) { + p_routeGraph = NULL; + p_graphNodeMap = NULL; + p_routeCache = NULL; /*new_component->generic_routing.parse_route = model_dijkstra_both_parse_route; new_component->generic_routing.parse_ASroute = model_dijkstra_both_parse_route; new_component->generic_routing.get_route_and_latency = dijkstra_get_route_and_latency; @@ -435,7 +440,7 @@ void AsDijkstra::end() if(!p_graphNodeMap) p_graphNodeMap = xbt_dict_new_homogeneous(&graph_node_map_elem_free); - if (m_cached && p_routeCache) + if (m_cached && !p_routeCache) p_routeCache = xbt_dict_new_homogeneous(&route_cache_elem_free); /* Add the loopback if needed */