+ 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_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);
+ surfxml_add_callback(STag_surfxml_trace_cb_list, &parse_trace_init);
+ surfxml_add_callback(ETag_surfxml_trace_cb_list, &parse_trace_finalize);
+ surfxml_add_callback(STag_surfxml_trace_c_connect_cb_list, &parse_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)
+{
+ char *key,*data;
+ xbt_dict_cursor_t cursor = NULL;
+
+ xbt_dict_foreach(route_table, cursor, key, data) {
+ xbt_dynar_t links = (xbt_dynar_t)data;
+ xbt_dynar_free(&links);
+ }
+ xbt_dict_free(&route_table);
+ route_link_list = NULL;
+
+ xbt_dict_foreach(set_list, cursor, key, data) {
+ xbt_dynar_t set = (xbt_dynar_t)data;
+ char *name;
+ unsigned int cpt = 0;