A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Clean callbacks for the host parsing.
[simgrid.git]
/
src
/
instr
/
instr_routing.c
diff --git
a/src/instr/instr_routing.c
b/src/instr/instr_routing.c
index
01e4a1b
..
9d7488c
100644
(file)
--- a/
src/instr/instr_routing.c
+++ b/
src/instr/instr_routing.c
@@
-109,15
+109,18
@@
static void recursiveGraphExtraction (routing_component_t rc, container_t contai
(child2->kind == INSTR_HOST || child2->kind == INSTR_ROUTER) &&
strcmp (child1_name, child2_name) != 0){
(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;
}
if (TRACE_onelink_only()){
if (xbt_dynar_length (route) > 1) continue;
}
- unsigned int cpt;
- void *link;
container_t previous = child1;
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;
container_t current = getContainerByName(link_name);
linkContainers(container, previous, current, filter);
previous = current;
@@
-186,21
+189,20
@@
static void instr_routing_parse_end_AS ()
static void instr_routing_parse_start_link ()
{
container_t father = *(container_t*)xbt_dynar_get_ptr(currentContainer, xbt_dynar_length(currentContainer)-1);
static void instr_routing_parse_start_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 =
struct_lnk->V_link_bandwidth
;
+ double latency_value =
struct_lnk->V_link_latency
;
xbt_dynar_t links_to_create = xbt_dynar_new (sizeof(char*), &xbt_free_ref);
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 (
struct_lnk->V
_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){
+ char *up = bprintf("%s_UP",
struct_lnk->V_
link_id);
+ char *down = bprintf("%s_DOWN",
struct_lnk->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*, 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(
struct_lnk->V_
link_id));
}
char *link_name = NULL;
}
char *link_name = NULL;
@@
-223,18
+225,14
@@
static void instr_routing_parse_start_link ()
xbt_dynar_free (&links_to_create);
}
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 (surf_parsing_host_arg_t host)
{
container_t father = *(container_t*)xbt_dynar_get_ptr(currentContainer, xbt_dynar_length(currentContainer)-1);
{
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->V
_host_id, INSTR_HOST, father);
if (TRACE_categorized() || TRACE_uncategorized()) {
type_t power = getVariableType ("power", NULL, new->type);
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->V_host_power_peak
);
}
if (TRACE_uncategorized()){
getVariableType ("power_used", "0.5 0.5 0.5", new->type);
}
if (TRACE_uncategorized()){
getVariableType ("power_used", "0.5 0.5 0.5", new->type);
@@
-268,18
+266,10
@@
static void instr_routing_parse_start_host ()
}
}
}
}
-static void instr_routing_parse_end_host ()
-{
-}
-
static void instr_routing_parse_start_router ()
{
container_t father = *(container_t*)xbt_dynar_get_ptr(currentContainer, xbt_dynar_length(currentContainer)-1);
static void instr_routing_parse_start_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 (struct_router->V_router_id, INSTR_ROUTER, father);
}
static void instr_routing_parse_end_platform ()
}
static void instr_routing_parse_end_platform ()
@@
-302,11
+292,8
@@
void instr_routing_define_callbacks ()
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_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);
+ surf_parse_host_add_cb(instr_routing_parse_start_host);
surfxml_add_callback(STag_surfxml_router_cb_list, &instr_routing_parse_start_router);
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);
}
surfxml_add_callback(ETag_surfxml_platform_cb_list, &instr_routing_parse_end_platform);
}