+static void add_traces(void) {
+ xbt_dict_cursor_t cursor=NULL;
+ char *trace_name,*elm;
+
+ static int called = 0;
+ if (called) return;
+ called = 1;
+
+ /* connect all traces relative to network */
+ xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
+ tmgr_trace_t trace = xbt_dict_get_or_null(traces_set_list, trace_name);
+ link_CM02_t link = xbt_dict_get_or_null(link_set, elm);
+
+ xbt_assert1(link, "Link %s undefined", elm);
+ xbt_assert1(trace, "Trace %s undefined", trace_name);
+
+ link->state_event = tmgr_history_add_trace(history, trace, 0.0, 0, link);
+ }
+
+ xbt_dict_foreach(trace_connect_list_bandwidth, cursor, trace_name, elm) {
+ tmgr_trace_t trace = xbt_dict_get_or_null(traces_set_list, trace_name);
+ link_CM02_t link = xbt_dict_get_or_null(link_set, elm);
+
+ xbt_assert1(link, "Link %s undefined", elm);
+ xbt_assert1(trace, "Trace %s undefined", trace_name);
+
+ link->bw_event = tmgr_history_add_trace(history, trace, 0.0, 0, link);
+ }
+
+ xbt_dict_foreach(trace_connect_list_latency, cursor, trace_name, elm) {
+ tmgr_trace_t trace = xbt_dict_get_or_null(traces_set_list, trace_name);
+ link_CM02_t link = xbt_dict_get_or_null(link_set, elm);
+
+ xbt_assert1(link, "Link %s undefined", elm);
+ xbt_assert1(trace, "Trace %s undefined", trace_name);
+
+ link->lat_event = tmgr_history_add_trace(history, trace, 0.0, 0, link);
+ }
+}
+
+static void define_callbacks(const char *file)
+{
+ /* Figuring out the network links */
+ surfxml_add_callback(STag_surfxml_host_cb_list, &count_hosts);
+ surfxml_add_callback(STag_surfxml_link_cb_list, &parse_link_init);
+ surfxml_add_callback(STag_surfxml_route_cb_list, &parse_route_set_endpoints);
+ surfxml_add_callback(ETag_surfxml_route_cb_list, &parse_route_set_route);
+ surfxml_add_callback(ETag_surfxml_platform_cb_list, &add_traces);
+ surfxml_add_callback(ETag_surfxml_platform_cb_list, &add_route);
+ surfxml_add_callback(ETag_surfxml_platform_cb_list, &add_loopback);
+}
+
+static void *name_service(const char *name)
+{
+ network_card_CM02_t card = xbt_dict_get_or_null(network_card_set, name);