}
static void instr_user_srcdst_variable(double time,
- void *src,
- void *dst,
+ const char *src,
+ const char *dst,
const char *variable,
const char *father_type,
double value,
InstrUserVariable what)
{
xbt_dynar_t route=NULL;
- routing_get_route_and_latency (src, dst, &route,NULL);
+ network_element_t src_elm = xbt_lib_get_or_null(host_lib,src,ROUTING_HOST_LEVEL);
+ if(!src_elm) src_elm = xbt_lib_get_or_null(as_router_lib,src,ROUTING_ASR_LEVEL);
+ if(!src_elm) xbt_die("Element '%s' not found!",src);
+
+ network_element_t dst_elm = xbt_lib_get_or_null(host_lib,dst,ROUTING_HOST_LEVEL);
+ if(!dst_elm) dst_elm = xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
+ if(!dst_elm) xbt_die("Element '%s' not found!",dst);
+
+ routing_get_route_and_latency (src_elm, dst_elm, &route,NULL);
unsigned int i;
void *link;
xbt_dynar_foreach (route, i, link) {
}
}
-const char *TRACE_node_name (xbt_node_t node)
-{
- void *data = xbt_graph_node_get_data(node);
- char *str = (char*)data;
- return str;
-}
-
-xbt_graph_t TRACE_platform_graph (void)
-{
- if (!TRACE_is_enabled()) return NULL;
- return instr_routing_platform_graph ();
-}
-
-void TRACE_platform_graph_export_graphviz (xbt_graph_t g, const char *filename)
+int TRACE_platform_graph_export_graphviz (const char *filename)
{
+ /* returns 1 if successful, 0 otherwise */
+ if (!TRACE_is_enabled()) return 0;
+ xbt_graph_t g = instr_routing_platform_graph();
+ if (g == NULL) return 0;
instr_routing_platform_graph_export_graphviz (g, filename);
+ return 1;
}
-
/*
* Derived functions that use instr_user_variable and TRACE_user_srcdst_variable.
* They were previously defined as pre-processors directives, but were transformed
}
/* for link variables, but with src and dst used for get_route */
-void TRACE_link_srcdst_variable_set (void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_set (const char *src, const char *dst, const char *variable, double value)
{
TRACE_link_srcdst_variable_set_with_time (MSG_get_clock(), src, dst, variable, value);
}
-void TRACE_link_srcdst_variable_add (void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_add (const char *src, const char *dst, const char *variable, double value)
{
TRACE_link_srcdst_variable_add_with_time (MSG_get_clock(), src, dst, variable, value);
}
-void TRACE_link_srcdst_variable_sub (void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_sub (const char *src, const char *dst, const char *variable, double value)
{
TRACE_link_srcdst_variable_sub_with_time (MSG_get_clock(), src, dst, variable, value);
}
-void TRACE_link_srcdst_variable_set_with_time (double time, void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_set_with_time (double time, const char *src, const char *dst, const char *variable, double value)
{
instr_user_srcdst_variable (time, src, dst, variable, "LINK", value, INSTR_US_SET);
}
-void TRACE_link_srcdst_variable_add_with_time (double time, void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_add_with_time (double time, const char *src, const char *dst, const char *variable, double value)
{
instr_user_srcdst_variable (time, src, dst, variable, "LINK", value, INSTR_US_ADD);
}
-void TRACE_link_srcdst_variable_sub_with_time (double time, void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_sub_with_time (double time, const char *src, const char *dst, const char *variable, double value)
{
instr_user_srcdst_variable (time, src, dst, variable, "LINK", value, INSTR_US_SUB);
}