From a7732fdf6a3ad939561c0681fc74b35194c1e154 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 10 Nov 2011 18:42:59 +0100 Subject: [PATCH] sanitize get_network_element_type() It were declared as a field of global_routing, and of each and every routing model. That's a bit much for a simple little function. --- src/include/surf/surf.h | 4 ++-- src/msg/msg_host.c | 2 +- src/surf/surf_private.h | 3 --- src/surf/surf_routing.c | 11 +++++------ src/surf/surf_routing_dijkstra.c | 4 ++-- src/surf/surf_routing_floyd.c | 4 ++-- src/surf/surf_routing_full.c | 4 ++-- src/surf/surf_routing_generic.c | 1 - src/surf/surf_routing_rulebased.c | 2 +- src/surf/surf_routing_vivaldi.c | 2 +- teshsuite/simdag/platforms/flatifier.c | 6 +++--- teshsuite/simdag/platforms/is_router_test.c | 4 ++-- 12 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 9e906a3039..8ac4782bb4 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -28,8 +28,8 @@ typedef enum { SURF_NETWORK_ELEMENT_AS, /* AS type */ } e_surf_network_element_type_t; -XBT_PUBLIC(e_surf_network_element_type_t) get_network_element_type(const char - *name); +XBT_PUBLIC(e_surf_network_element_type_t) + routing_get_network_element_type(const char *name); /** @Brief Specify that we use that action */ XBT_PUBLIC(void) surf_action_ref(surf_action_t action); diff --git a/src/msg/msg_host.c b/src/msg/msg_host.c index a3af07a10b..9b6688ca5f 100644 --- a/src/msg/msg_host.c +++ b/src/msg/msg_host.c @@ -168,7 +168,7 @@ m_host_t *MSG_get_host_table(void) array = xbt_new0(void *, host_lib->count); xbt_lib_foreach(host_lib, cursor, key, data) { - if(get_network_element_type(key) == SURF_NETWORK_ELEMENT_HOST) + if(routing_get_network_element_type(key) == SURF_NETWORK_ELEMENT_HOST) array[i++] = data[MSG_HOST_LEVEL]; } diff --git a/src/surf/surf_private.h b/src/surf/surf_private.h index fdb4dfe73e..15f9cbfc7d 100644 --- a/src/surf/surf_private.h +++ b/src/surf/surf_private.h @@ -140,7 +140,6 @@ typedef struct s_as { double(*get_latency) (AS_t as, const char *src, const char *dst, route_extended_t e_route); xbt_dynar_t(*get_onelink_routes) (AS_t as); - e_surf_network_element_type_t(*get_network_element_type) (const char *name); route_extended_t(*get_bypass_route) (AS_t as, const char *src, const char *dst); void (*finalize) (AS_t as); @@ -173,8 +172,6 @@ struct s_routing_global { xbt_dynar_t(*get_onelink_routes) (void); void (*get_route_latency)(const char *src, const char *dst, xbt_dynar_t *route, double *latency, int cleanup); - e_surf_network_element_type_t(*get_network_element_type) (const char *name); - xbt_dynar_t last_route; }; XBT_PUBLIC(void) routing_model_create(size_t size_of_link, void *loopback); diff --git a/src/surf/surf_routing.c b/src/surf/surf_routing.c index 0455c7e462..f20ed82243 100644 --- a/src/surf/surf_routing.c +++ b/src/surf/surf_routing.c @@ -594,13 +594,15 @@ static void _get_route_latency(const char *src, const char *dst, static void get_route_latency(const char *src, const char *dst, xbt_dynar_t * route, double *latency, int cleanup) { + static xbt_dynar_t last_route = NULL; + _get_route_latency(src, dst, route, latency); xbt_assert(!route || *route, "no route between \"%s\" and \"%s\"", src, dst); xbt_assert(!latency || *latency >= 0.0, "latency error on route between \"%s\" and \"%s\"", src, dst); if (route) { - xbt_dynar_free(&global_routing->last_route); - global_routing->last_route = cleanup ? *route : NULL; + xbt_dynar_free(&last_route); + last_route = cleanup ? *route : NULL; } } @@ -670,7 +672,7 @@ static xbt_dynar_t get_onelink_routes(void) return recursive_get_onelink_routes(global_routing->root); } -e_surf_network_element_type_t get_network_element_type(const char *name) +e_surf_network_element_type_t routing_get_network_element_type(const char *name) { network_element_info_t rc = NULL; @@ -698,10 +700,8 @@ void routing_model_create(size_t size_of_links, void *loopback) global_routing->get_route_no_cleanup = get_route_no_cleanup; global_routing->get_onelink_routes = get_onelink_routes; global_routing->get_route_latency = get_route_latency; - global_routing->get_network_element_type = get_network_element_type; global_routing->loopback = loopback; global_routing->size_of_link = size_of_links; - global_routing->last_route = NULL; /* no current routing at moment */ current_routing = NULL; } @@ -1235,6 +1235,5 @@ void routing_exit(void) { if (!global_routing) return; finalize_rec(global_routing->root); - xbt_dynar_free(&global_routing->last_route); xbt_free(global_routing); } diff --git a/src/surf/surf_routing_dijkstra.c b/src/surf/surf_routing_dijkstra.c index 68ea411e01..33cf01bada 100644 --- a/src/surf/surf_routing_dijkstra.c +++ b/src/surf/surf_routing_dijkstra.c @@ -519,9 +519,9 @@ void model_dijkstra_both_parse_route (AS_t asg, const char *src, else{ XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", src, route->src_gateway, dst, route->dst_gateway); - if(global_routing->get_network_element_type((const char*)route->dst_gateway) == SURF_NETWORK_ELEMENT_NULL) + if(routing_get_network_element_type((const char*)route->dst_gateway) == SURF_NETWORK_ELEMENT_NULL) xbt_die("The dst_gateway '%s' does not exist!",route->dst_gateway); - if(global_routing->get_network_element_type((const char*)route->src_gateway) == SURF_NETWORK_ELEMENT_NULL) + if(routing_get_network_element_type((const char*)route->src_gateway) == SURF_NETWORK_ELEMENT_NULL) xbt_die("The src_gateway '%s' does not exist!",route->src_gateway); } diff --git a/src/surf/surf_routing_floyd.c b/src/surf/surf_routing_floyd.c index c29b20910b..23bb9c4fa7 100644 --- a/src/surf/surf_routing_floyd.c +++ b/src/surf/surf_routing_floyd.c @@ -311,9 +311,9 @@ void model_floyd_parse_route(AS_t rc, const char *src, else{ XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", src, route->src_gateway, dst, route->dst_gateway); - if(global_routing->get_network_element_type((const char*)route->dst_gateway) == SURF_NETWORK_ELEMENT_NULL) + if(routing_get_network_element_type((const char*)route->dst_gateway) == SURF_NETWORK_ELEMENT_NULL) xbt_die("The dst_gateway '%s' does not exist!",route->dst_gateway); - if(global_routing->get_network_element_type((const char*)route->src_gateway) == SURF_NETWORK_ELEMENT_NULL) + if(routing_get_network_element_type((const char*)route->src_gateway) == SURF_NETWORK_ELEMENT_NULL) xbt_die("The src_gateway '%s' does not exist!",route->src_gateway); } TO_FLOYD_LINK(*src_id, *dst_id) = diff --git a/src/surf/surf_routing_full.c b/src/surf/surf_routing_full.c index 15ef1e21b1..2bd5b2dced 100644 --- a/src/surf/surf_routing_full.c +++ b/src/surf/surf_routing_full.c @@ -216,9 +216,9 @@ void model_full_set_route(AS_t rc, const char *src, else{ XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", src, route->src_gateway, dst, route->dst_gateway); - if(global_routing->get_network_element_type((const char*)route->dst_gateway) == SURF_NETWORK_ELEMENT_NULL) + if(routing_get_network_element_type((const char*)route->dst_gateway) == SURF_NETWORK_ELEMENT_NULL) xbt_die("The dst_gateway '%s' does not exist!",route->dst_gateway); - if(global_routing->get_network_element_type((const char*)route->src_gateway) == SURF_NETWORK_ELEMENT_NULL) + if(routing_get_network_element_type((const char*)route->src_gateway) == SURF_NETWORK_ELEMENT_NULL) xbt_die("The src_gateway '%s' does not exist!",route->src_gateway); } TO_ROUTE_FULL(*src_id, *dst_id) = generic_new_extended_route(rc->hierarchy,route,1); diff --git a/src/surf/surf_routing_generic.c b/src/surf/surf_routing_generic.c index e99aa19bf8..a6501cb401 100644 --- a/src/surf/surf_routing_generic.c +++ b/src/surf/surf_routing_generic.c @@ -30,7 +30,6 @@ AS_t routmod_generic_create(size_t childsize) { new_component->finalize = NULL; new_component->to_index = xbt_dict_new(); new_component->bypassRoutes = xbt_dict_new(); - new_component->get_network_element_type = get_network_element_type; return new_component; } diff --git a/src/surf/surf_routing_rulebased.c b/src/surf/surf_routing_rulebased.c index 6e7a605bab..9fad2dcfe3 100644 --- a/src/surf/surf_routing_rulebased.c +++ b/src/surf/surf_routing_rulebased.c @@ -230,7 +230,7 @@ static xbt_dynar_t rulebased_get_onelink_routes(AS_t rc) //find router char *router = NULL; xbt_dict_foreach(routing->dict_processing_units, c1, k1, d1) { - if (rc->get_network_element_type(k1) == SURF_NETWORK_ELEMENT_ROUTER){ + if (routing_get_network_element_type(k1) == SURF_NETWORK_ELEMENT_ROUTER){ router = k1; } } diff --git a/src/surf/surf_routing_vivaldi.c b/src/surf/surf_routing_vivaldi.c index 687bc872ff..73b4a38eaf 100644 --- a/src/surf/surf_routing_vivaldi.c +++ b/src/surf/surf_routing_vivaldi.c @@ -58,7 +58,7 @@ static double base_vivaldi_get_latency (const char *src, const char *dst) static double vivaldi_get_link_latency (AS_t rc,const char *src, const char *dst, route_extended_t e_route) { - if(get_network_element_type(src) == SURF_NETWORK_ELEMENT_AS) { + if(routing_get_network_element_type(src) == SURF_NETWORK_ELEMENT_AS) { int need_to_clean = e_route?0:1; double latency; e_route = e_route?e_route:(*(rc->get_route)) (rc, src, dst); diff --git a/teshsuite/simdag/platforms/flatifier.c b/teshsuite/simdag/platforms/flatifier.c index 59f1ffe2b2..b02c8965e0 100644 --- a/teshsuite/simdag/platforms/flatifier.c +++ b/teshsuite/simdag/platforms/flatifier.c @@ -149,7 +149,7 @@ int main(int argc, char **argv) } xbt_lib_foreach(as_router_lib, cursor_dst, dst, value) //to router { - if(get_network_element_type(dst) == SURF_NETWORK_ELEMENT_ROUTER){ + if(routing_get_network_element_type(dst) == SURF_NETWORK_ELEMENT_ROUTER){ printf(" \n " ,src ,dst); @@ -169,10 +169,10 @@ int main(int argc, char **argv) xbt_lib_foreach(as_router_lib, cursor_src, src, value) // Routes from router { - if(get_network_element_type(src) == SURF_NETWORK_ELEMENT_ROUTER){ + if(routing_get_network_element_type(src) == SURF_NETWORK_ELEMENT_ROUTER){ xbt_lib_foreach(as_router_lib, cursor_dst, dst, value) //to router { - if(get_network_element_type(dst) == SURF_NETWORK_ELEMENT_ROUTER){ + if(routing_get_network_element_type(dst) == SURF_NETWORK_ELEMENT_ROUTER){ printf(" \n " ,src ,dst); diff --git a/teshsuite/simdag/platforms/is_router_test.c b/teshsuite/simdag/platforms/is_router_test.c index df144883a2..443d6e3808 100644 --- a/teshsuite/simdag/platforms/is_router_test.c +++ b/teshsuite/simdag/platforms/is_router_test.c @@ -29,12 +29,12 @@ int main(int argc, char **argv) xbt_lib_foreach(host_lib, cursor, key, data) { printf(" - Seen: \"%s\" is type : %d\n", key, - (int) global_routing->get_network_element_type(key)); + (int) routing_get_network_element_type(key)); } xbt_lib_foreach(as_router_lib, cursor, key, data) { printf(" - Seen: \"%s\" is type : %d\n", key, - (int) global_routing->get_network_element_type(key)); + (int) routing_get_network_element_type(key)); } SD_exit(); -- 2.20.1