(child2->kind == INSTR_HOST || child2->kind == INSTR_ROUTER) &&
strcmp (child1_name, child2_name) != 0){
- xbt_dynar_t route = global_routing->get_route (child1_name, child2_name);
+ xbt_dynar_t route = NULL;
+ route = global_routing->get_route_or_null (child1_name, child2_name);
+ if (route == NULL) continue;
+
if (TRACE_onelink_only()){
if (xbt_dynar_length (route) > 1) continue;
}
- unsigned int cpt;
- void *link;
container_t previous = child1;
- xbt_dynar_foreach (route, cpt, link) {
- char *link_name = ((link_CM02_t)link)->lmm_resource.generic_resource.name;
+ int i;
+ for (i = 0; i < xbt_dynar_length(route); i++){
+ link_CM02_t *link = ((link_CM02_t*)xbt_dynar_get_ptr (route, i));
+ char *link_name = (*link)->lmm_resource.generic_resource.name;
container_t current = getContainerByName(link_name);
linkContainers(container, previous, current, filter);
previous = current;
}
}
-static void instr_routing_parse_start_link ()
+static void instr_routing_parse_start_link (sg_platf_link_cbarg_t link)
{
container_t father = *(container_t*)xbt_dynar_get_ptr(currentContainer, xbt_dynar_length(currentContainer)-1);
- const char *link_id = A_surfxml_link_id;
- double bandwidth_value = atof(A_surfxml_link_bandwidth);
- double latency_value = atof(A_surfxml_link_latency);
+ double bandwidth_value = link->V_link_bandwidth;
+ double latency_value = link->V_link_latency;
xbt_dynar_t links_to_create = xbt_dynar_new (sizeof(char*), &xbt_free_ref);
- if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){
- char *up = bprintf("%s_UP", link_id);
- char *down = bprintf("%s_DOWN", link_id);
+ if (link->V_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){
+ char *up = bprintf("%s_UP", link->V_link_id);
+ char *down = bprintf("%s_DOWN", link->V_link_id);
xbt_dynar_push_as (links_to_create, char*, xbt_strdup(up));
xbt_dynar_push_as (links_to_create, char*, xbt_strdup(down));
free (up);
free (down);
}else{
- xbt_dynar_push_as (links_to_create, char*, strdup(link_id));
+ xbt_dynar_push_as (links_to_create, char*, strdup(link->V_link_id));
}
char *link_name = NULL;
xbt_dynar_free (&links_to_create);
}
-static void instr_routing_parse_end_link ()
-{
-}
-
-static void instr_routing_parse_start_host ()
+static void instr_routing_parse_start_host (sg_platf_host_cbarg_t host)
{
container_t father = *(container_t*)xbt_dynar_get_ptr(currentContainer, xbt_dynar_length(currentContainer)-1);
- container_t new = newContainer (A_surfxml_host_id, INSTR_HOST, father);
+ container_t new = newContainer (host->id, INSTR_HOST, father);
if (TRACE_categorized() || TRACE_uncategorized()) {
type_t power = getVariableType ("power", NULL, new->type);
- new_pajeSetVariable (0, new, power, atof(A_surfxml_host_power));
+ new_pajeSetVariable (0, new, power, host->power_peak);
}
if (TRACE_uncategorized()){
getVariableType ("power_used", "0.5 0.5 0.5", new->type);
}
}
-static void instr_routing_parse_end_host ()
-{
-}
-
-static void instr_routing_parse_start_router ()
+static void instr_routing_parse_start_router (sg_platf_router_cbarg_t router)
{
container_t father = *(container_t*)xbt_dynar_get_ptr(currentContainer, xbt_dynar_length(currentContainer)-1);
- newContainer (A_surfxml_router_id, INSTR_ROUTER, father);
-}
-
-static void instr_routing_parse_end_router ()
-{
+ newContainer (router->id, INSTR_ROUTER, father);
}
static void instr_routing_parse_end_platform ()
surfxml_add_callback(STag_surfxml_AS_cb_list, &instr_routing_parse_start_AS);
surfxml_add_callback(ETag_surfxml_AS_cb_list, &instr_routing_parse_end_AS);
if (!TRACE_needs_platform()) return;
- surfxml_add_callback(STag_surfxml_link_cb_list, &instr_routing_parse_start_link);
- surfxml_add_callback(ETag_surfxml_link_cb_list, &instr_routing_parse_end_link);
- surfxml_add_callback(STag_surfxml_host_cb_list, &instr_routing_parse_start_host);
- surfxml_add_callback(ETag_surfxml_host_cb_list, &instr_routing_parse_end_host);
- surfxml_add_callback(STag_surfxml_router_cb_list, &instr_routing_parse_start_router);
- surfxml_add_callback(ETag_surfxml_router_cb_list, &instr_routing_parse_end_router);
- surfxml_add_callback(ETag_surfxml_platform_cb_list, &instr_routing_parse_end_platform);
+ sg_platf_link_add_cb(instr_routing_parse_start_link);
+ sg_platf_host_add_cb(instr_routing_parse_start_host);
+ sg_platf_router_add_cb(instr_routing_parse_start_router);
+
+ sg_platf_postparse_add_cb(instr_routing_parse_end_platform);
}
/*