link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
}
-/**
- * \brief Set a new link on the actual list of link for a route or ASroute
- */
-static void parse_E_link_ctn_new_elem(const char *link_id)
-{
- char *val;
- val = xbt_strdup(link_id);
- xbt_dynar_push(link_list, &val);
-}
-
/**
* \brief Set a new link on the actual list of link for a route or ASroute from XML
*/
-static void parse_E_link_ctn_new_elem_XML(void)
+static void routing_parse_link_ctn(void)
{
- if (A_surfxml_link_ctn_direction == A_surfxml_link_ctn_direction_NONE)
- parse_E_link_ctn_new_elem(A_surfxml_link_ctn_id);
- if (A_surfxml_link_ctn_direction == A_surfxml_link_ctn_direction_UP) {
- char *link_id = bprintf("%s_UP", A_surfxml_link_ctn_id);
- parse_E_link_ctn_new_elem(link_id);
- free(link_id);
- }
- if (A_surfxml_link_ctn_direction == A_surfxml_link_ctn_direction_DOWN) {
- char *link_id = bprintf("%s_DOWN", A_surfxml_link_ctn_id);
- parse_E_link_ctn_new_elem(link_id);
- free(link_id);
+ char *link_id;
+ switch (A_surfxml_link_ctn_direction) {
+ case AU_surfxml_link_ctn_direction:
+ case A_surfxml_link_ctn_direction_NONE:
+ link_id = xbt_strdup(A_surfxml_link_ctn_id);
+ break;
+ case A_surfxml_link_ctn_direction_UP:
+ link_id = bprintf("%s_UP", A_surfxml_link_ctn_id);
+ break;
+ case A_surfxml_link_ctn_direction_DOWN:
+ link_id = bprintf("%s_DOWN", A_surfxml_link_ctn_id);
}
+ xbt_dynar_push(link_list,&link_id);
}
/**
get_link_latency = get_link_latency_fun;
/* no current routing at moment */
current_routing = NULL;
+}
- /* parse generic elements */
+void routing_register_callbacks() {
sg_platf_host_add_cb(parse_S_host);
sg_platf_router_add_cb(parse_S_router);
+ surfxml_add_callback(STag_surfxml_random_cb_list, &routing_parse_Srandom);
+
surfxml_add_callback(STag_surfxml_route_cb_list,
&parse_S_route_new_and_endpoints_XML);
surfxml_add_callback(STag_surfxml_ASroute_cb_list,
surfxml_add_callback(STag_surfxml_bypassRoute_cb_list,
&parse_S_bypassRoute_new_and_endpoints);
- surfxml_add_callback(ETag_surfxml_link_ctn_cb_list,
- &parse_E_link_ctn_new_elem_XML);
+ surfxml_add_callback(ETag_surfxml_link_ctn_cb_list, &routing_parse_link_ctn);
surfxml_add_callback(ETag_surfxml_route_cb_list,
&parse_E_route_store_route);
#endif
}
-void surf_parse_add_callback_config(void)
-{
- surfxml_add_callback(STag_surfxml_random_cb_list, &routing_parse_Srandom);
-}
-
-
/* ************************************************** */
/* ********** PATERN FOR NEW ROUTING **************** */