X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/513baa2ee64b3db9b8697c61123715e6892afb4e..02b7b97c6140acd91203e555f3ee999f7abf353c:/src/surf/surfxml_parseplatf.c diff --git a/src/surf/surfxml_parseplatf.c b/src/surf/surfxml_parseplatf.c index 6b906efa4f..3d2ff37d3d 100644 --- a/src/surf/surfxml_parseplatf.c +++ b/src/surf/surfxml_parseplatf.c @@ -52,11 +52,10 @@ void surfxml_bufferstack_pop(int new) * Pass arguments to parsing callback as structures to save some time (and allow callbacks to ignore some) */ -hostSG_t struct_host = NULL; -router_t struct_router = NULL; -cluster_t struct_cluster = NULL; -peer_t struct_peer = NULL; -link_t struct_lnk = NULL; +surf_parsing_router_arg_t struct_router = NULL; +surf_parsing_cluster_arg_t struct_cluster = NULL; +surf_parsing_peer_arg_t struct_peer = NULL; +surf_parsing_link_arg_t struct_lnk = NULL; /* @@ -143,6 +142,14 @@ static void parse_Stag_trace_connect(void) } } +/* Call the right C function when we see the tags */ +static void parse_S_AS(void) { + routing_AS_init(A_surfxml_AS_id, A_surfxml_AS_routing); +} +static void parse_E_AS(void) { + routing_AS_end(A_surfxml_AS_id); +} + /* Init and free parse data */ @@ -162,6 +169,10 @@ static void init_data(void) surfxml_add_callback(ETag_surfxml_trace_cb_list, &parse_Etag_trace); surfxml_add_callback(STag_surfxml_trace_connect_cb_list, &parse_Stag_trace_connect); + + /* we care about the ASes while parsing the platf. Incredible, isnt it? */ + surfxml_add_callback(STag_surfxml_AS_cb_list, &parse_S_AS); + surfxml_add_callback(ETag_surfxml_AS_cb_list, &parse_E_AS); } static void free_data(void) @@ -181,7 +192,6 @@ void parse_platform_file(const char *file) { int parse_status; - surf_parse_reset_callbacks(); surf_parse_add_callback_config(); @@ -193,7 +203,8 @@ void parse_platform_file(const char *file) parse_status = surf_parse(); free_data(); surf_parse_close(); - xbt_assert(!parse_status, "Parse error in %s", file); + if (parse_status) + xbt_die("Parse error in %s", file); surf_config_models_create_elms(); }