X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6d29c09ea1d296d6a387aedf84b1c0c7084fbbea..14dbe48f4f9623cf72fc207b7c2041b9f611972a:/src/surf/surfxml_parseplatf.cpp diff --git a/src/surf/surfxml_parseplatf.cpp b/src/surf/surfxml_parseplatf.cpp index 5a9ea0ea3a..eaa30d65ac 100644 --- a/src/surf/surfxml_parseplatf.cpp +++ b/src/surf/surfxml_parseplatf.cpp @@ -10,7 +10,7 @@ #include "xbt/dict.h" #include "simgrid/platf.h" #include "src/surf/cpu_interface.hpp" -#include "src/surf/surf_private.h" +#include "src/surf/network_interface.hpp" #include "src/surf/surfxml_private.h" #ifdef HAVE_LUA @@ -64,11 +64,11 @@ void surfxml_bufferstack_pop(int new_one) */ xbt_dict_t traces_set_list = NULL; -xbt_dict_t trace_connect_list_host_avail = NULL; -xbt_dict_t trace_connect_list_host_speed = NULL; -xbt_dict_t trace_connect_list_link_avail = NULL; -xbt_dict_t trace_connect_list_link_bw = NULL; -xbt_dict_t trace_connect_list_link_lat = NULL; +XBT_PRIVATE xbt_dict_t trace_connect_list_host_avail = NULL; +XBT_PRIVATE xbt_dict_t trace_connect_list_host_speed = NULL; +XBT_PRIVATE xbt_dict_t trace_connect_list_link_avail = NULL; +XBT_PRIVATE xbt_dict_t trace_connect_list_link_bw = NULL; +XBT_PRIVATE xbt_dict_t trace_connect_list_link_lat = NULL; void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect) { @@ -83,7 +83,7 @@ void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect) trace_connect->trace, xbt_strdup(trace_connect->element), NULL); break; - case SURF_TRACE_CONNECT_KIND_POWER: + case SURF_TRACE_CONNECT_KIND_SPEED: xbt_dict_set(trace_connect_list_host_speed, trace_connect->trace, xbt_strdup(trace_connect->element), NULL); break; @@ -114,7 +114,7 @@ void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect) static int after_config_done; void parse_after_config() { if (!after_config_done) { - TRACE_start(); + TRACE_start(); /* Register classical callbacks */ storage_register_callbacks(); @@ -191,6 +191,39 @@ void parse_platform_file(const char *file) cpu->set_state_trace(trace); } + xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) { + tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); + xbt_assert(trace, "Trace %s undefined", trace_name); + + simgrid::s4u::Host *host = sg_host_by_name(elm); + xbt_assert(host, "Host %s undefined", elm); + simgrid::surf::Cpu *cpu = host->pimpl_cpu; + + cpu->set_speed_trace(trace); + } + xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) { + tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); + xbt_assert(trace, "Trace %s undefined", trace_name); + Link *link = Link::byName(elm); + xbt_assert(link, "Link %s undefined", elm); + link->set_state_trace(trace); + } + + xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) { + tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); + xbt_assert(trace, "Trace %s undefined", trace_name); + Link *link = Link::byName(elm); + xbt_assert(link, "Link %s undefined", elm); + link->set_bandwidth_trace(trace); + } + + xbt_dict_foreach(trace_connect_list_link_lat, cursor, trace_name, elm) { + tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); + xbt_assert(trace, "Trace %s undefined", trace_name); + Link *link = Link::byName(elm); + xbt_assert(link, "Link %s undefined", elm); + link->set_latency_trace(trace); + } /* Free my data */ xbt_dict_free(&trace_connect_list_host_avail);