-static void parse_file(const char *file)
-{
- /* Figuring out the network links */
- surf_parse_reset_parser();
- ETag_surfxml_network_link_fun = parse_network_link;
- surf_parse_open(file);
- xbt_assert1((!surf_parse()), "Parse error in %s", file);
- surf_parse_close();
-
- /* Figuring out the network cards used */
- /* KF
- surf_parse_reset_parser();
- STag_surfxml_route_fun=parse_route_set_endpoints;
- surf_parse_open(file);
- xbt_assert1((!surf_parse()),"Parse error in %s",file);
- surf_parse_close();
- */
-
- /* KF: Figuring out the router (considered as part of
- network cards) used. */
- surf_parse_reset_parser();
- STag_surfxml_router_fun = parse_route_set_routers;
- surf_parse_open(file);
- xbt_assert1((!surf_parse()), "Parse error in %s", file);
- surf_parse_close();
-
- /* Building the one-hop routes */
- surf_parse_reset_parser();
- STag_surfxml_route_fun = parse_route_set_endpoints;
- ETag_surfxml_route_element_fun = parse_route_elem;
- ETag_surfxml_route_fun = parse_route_set_onehop_route;
- surf_parse_open(file);
- xbt_assert1((!surf_parse()), "Parse error in %s", file);
- surf_parse_close();
-
- /* Building the routes */
- surf_parse_reset_parser();
- STag_surfxml_route_fun = parse_route_set_endpoints;
- ETag_surfxml_route_element_fun = parse_route_elem;
- ETag_surfxml_route_fun = parse_route_set_route;
- surf_parse_open(file);
- xbt_assert1((!surf_parse()), "Parse error in %s", file);
- surf_parse_close();
+static void define_callbacks(const char *file)
+{
+ surfxml_add_callback(STag_surfxml_prop_cb_list, &parse_properties);
+ surfxml_add_callback(STag_surfxml_router_cb_list, &parse_route_set_routers);
+ surfxml_add_callback(STag_surfxml_link_cb_list, &parse_link_init);
+ surfxml_add_callback(STag_surfxml_route_cb_list, &parse_route_set_endpoints);
+ surfxml_add_callback(ETag_surfxml_link_c_ctn_cb_list, &parse_route_elem);
+/* surfxml_add_callback(ETag_surfxml_route_cb_list, &parse_route_set_onehop_route);*/
+ surfxml_add_callback(STag_surfxml_platform_cb_list, &init_data);
+ surfxml_add_callback(ETag_surfxml_route_cb_list, &parse_route_set_route);
+ surfxml_add_callback(ETag_surfxml_platform_cb_list, &add_route);
+ surfxml_add_callback(STag_surfxml_set_cb_list, &parse_sets);
+ surfxml_add_callback(STag_surfxml_route_c_multi_cb_list, &parse_route_multi_set_endpoints);
+ surfxml_add_callback(ETag_surfxml_route_c_multi_cb_list, &parse_route_multi_set_route);
+ surfxml_add_callback(STag_surfxml_foreach_cb_list, &parse_foreach);
+ surfxml_add_callback(STag_surfxml_cluster_cb_list, &parse_cluster);