#include "xbt/dict.h"
#include "simgrid/platf.h"
#include "src/surf/cpu_interface.hpp"
-#include "src/surf/surf_private.h"
-#include "src/surf/surfxml_private.h"
+#include "src/surf/network_interface.hpp"
#ifdef HAVE_LUA
extern "C" {
*/
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)
{
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;
static int after_config_done;
void parse_after_config() {
if (!after_config_done) {
- TRACE_start();
+ TRACE_start();
/* Register classical callbacks */
storage_register_callbacks();
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);
xbt_dict_free(&trace_connect_list_link_bw);
xbt_dict_free(&trace_connect_list_link_lat);
xbt_dict_free(&traces_set_list);
- xbt_dict_free(&random_data_list);
xbt_dynar_free(&surfxml_bufferstack_stack);
surf_parse_close();