From 4a8d945bb95c7c13b522a6776b0229f30ab5025e Mon Sep 17 00:00:00 2001 From: navarrop Date: Tue, 28 Sep 2010 08:52:14 +0000 Subject: [PATCH] The second version of hierarchical routing, In this file I comment some lines to make a work example git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8224 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/surf/surfxml_parse.c | 96 ++++++++++++++++++++++++++++------------ 1 file changed, 68 insertions(+), 28 deletions(-) diff --git a/src/surf/surfxml_parse.c b/src/surf/surfxml_parse.c index 8967099e89..e3148b6645 100644 --- a/src/surf/surfxml_parse.c +++ b/src/surf/surfxml_parse.c @@ -90,6 +90,11 @@ xbt_dynar_t STag_surfxml_trace_c_connect_cb_list = NULL; xbt_dynar_t ETag_surfxml_trace_c_connect_cb_list = NULL; xbt_dynar_t STag_surfxml_random_cb_list = NULL; xbt_dynar_t ETag_surfxml_random_cb_list = NULL; +xbt_dynar_t STag_surfxml_AS_cb_list = NULL; // addded by david +xbt_dynar_t ETag_surfxml_AS_cb_list = NULL; // addded by david +xbt_dynar_t STag_surfxml_gateway_cb_list = NULL; // addded by david +xbt_dynar_t ETag_surfxml_gateway_cb_list = NULL; // addded by david + /* Stores the sets defined in the XML */ xbt_dict_t set_list = NULL; @@ -160,6 +165,10 @@ void surf_parse_free_callbacks(void) xbt_dynar_free(&ETag_surfxml_trace_c_connect_cb_list); xbt_dynar_free(&STag_surfxml_random_cb_list); xbt_dynar_free(&ETag_surfxml_random_cb_list); + xbt_dynar_free(&STag_surfxml_AS_cb_list); // addded by david + xbt_dynar_free(&ETag_surfxml_AS_cb_list); // addded by david + xbt_dynar_free(&STag_surfxml_gateway_cb_list); // addded by david + xbt_dynar_free(&ETag_surfxml_gateway_cb_list); // addded by david } void surf_parse_reset_parser(void) @@ -175,10 +184,8 @@ void surf_parse_reset_parser(void) ETag_surfxml_link_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_route_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_route_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); - STag_surfxml_link_c_ctn_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); - ETag_surfxml_link_c_ctn_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); + STag_surfxml_link_c_ctn_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); + ETag_surfxml_link_c_ctn_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_process_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_process_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_argument_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); @@ -189,20 +196,20 @@ void surf_parse_reset_parser(void) ETag_surfxml_set_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_foreach_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_foreach_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); - STag_surfxml_route_c_multi_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); - ETag_surfxml_route_c_multi_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); + STag_surfxml_route_c_multi_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); + ETag_surfxml_route_c_multi_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_cluster_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_cluster_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_trace_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_trace_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); - STag_surfxml_trace_c_connect_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); - ETag_surfxml_trace_c_connect_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); + STag_surfxml_trace_c_connect_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); + ETag_surfxml_trace_c_connect_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_random_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_random_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); + STag_surfxml_AS_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); // addded by david + ETag_surfxml_AS_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); // addded by david + STag_surfxml_gateway_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); // addded by david + ETag_surfxml_gateway_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); // addded by david } void STag_surfxml_include(void) @@ -427,6 +434,26 @@ void ETag_surfxml_random(void) surfxml_call_cb_functions(ETag_surfxml_random_cb_list); } +void STag_surfxml_AS(void) // addded by david +{ + surfxml_call_cb_functions(STag_surfxml_AS_cb_list); +} + +void ETag_surfxml_AS(void) // addded by david +{ + surfxml_call_cb_functions(ETag_surfxml_AS_cb_list); +} + +void STag_surfxml_gateway(void) // addded by david +{ + surfxml_call_cb_functions(STag_surfxml_gateway_cb_list); +} + +void ETag_surfxml_gateway(void) // addded by david +{ + surfxml_call_cb_functions(ETag_surfxml_gateway_cb_list); +} + void surf_parse_open(const char *file) { static int warned = 0; /* warn only once */ @@ -512,6 +539,19 @@ void surfxml_add_callback(xbt_dynar_t cb_list, void_f_void_t function) xbt_dynar_push(cb_list, &function); } +void surfxml_del_callback(xbt_dynar_t* p_cb_list, void_f_void_t function) +{ + xbt_dynar_t new_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); + unsigned int it; + void_f_void_t func; + xbt_dynar_foreach(*p_cb_list,it,func) { + if( func != function ) + xbt_dynar_push(new_cb_list, &func); + } + xbt_dynar_free(p_cb_list); + *p_cb_list = new_cb_list; +} + static XBT_INLINE void surfxml_call_cb_functions(xbt_dynar_t cb_list) { unsigned int iterator; @@ -547,22 +587,22 @@ static void init_data(void) trace_connect_list_latency = xbt_dict_new(); random_data_list = xbt_dict_new(); - surfxml_add_callback(STag_surfxml_prop_cb_list, &parse_properties); - surfxml_add_callback(ETag_surfxml_link_c_ctn_cb_list, &parse_route_elem); - surfxml_add_callback(STag_surfxml_route_cb_list, - &parse_route_set_endpoints); - surfxml_add_callback(STag_surfxml_set_cb_list, &parse_sets); - surfxml_add_callback(STag_surfxml_route_c_multi_cb_list, - &parse_Stag_route_multi); - surfxml_add_callback(ETag_surfxml_route_c_multi_cb_list, - &parse_Etag_route_multi); - surfxml_add_callback(STag_surfxml_foreach_cb_list, &parse_Stag_foreach); - surfxml_add_callback(STag_surfxml_trace_cb_list, &parse_Stag_trace); - surfxml_add_callback(ETag_surfxml_trace_cb_list, &parse_Etag_trace); - surfxml_add_callback(STag_surfxml_trace_c_connect_cb_list, - &parse_Stag_trace_c_connect); - surfxml_add_callback(STag_surfxml_random_cb_list, &init_randomness); - surfxml_add_callback(ETag_surfxml_random_cb_list, &add_randomness); + +// commented by david + +// surfxml_add_callback(STag_surfxml_prop_cb_list, &parse_properties); +// surfxml_add_callback(ETag_surfxml_link_c_ctn_cb_list, &parse_route_elem); +// surfxml_add_callback(STag_surfxml_route_cb_list, &parse_route_set_endpoints); +// surfxml_add_callback(STag_surfxml_set_cb_list, &parse_sets); +// surfxml_add_callback(STag_surfxml_route_c_multi_cb_list, &parse_Stag_route_multi); +// surfxml_add_callback(ETag_surfxml_route_c_multi_cb_list, &parse_Etag_route_multi); +// surfxml_add_callback(STag_surfxml_foreach_cb_list, &parse_Stag_foreach); +// surfxml_add_callback(STag_surfxml_trace_cb_list, &parse_Stag_trace); +// surfxml_add_callback(ETag_surfxml_trace_cb_list, &parse_Etag_trace); +// surfxml_add_callback(STag_surfxml_trace_c_connect_cb_list, &parse_Stag_trace_c_connect); +// surfxml_add_callback(STag_surfxml_random_cb_list, &init_randomness); +// surfxml_add_callback(ETag_surfxml_random_cb_list, &add_randomness); + } static void free_data(void) -- 2.20.1