/* For the trace and trace:connect tag (store their content till the end of the parsing) */
XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_host_speed;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_avail;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_bw;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_lat;
XBT_PUBLIC(double) parse_cpu_speed(const char *str_speed);
surf_cpu_model_vm = new simgrid::surf::CpuCas01Model();
xbt_dynar_push(all_existing_models, &surf_cpu_model_vm);
-
- simgrid::surf::on_postparse.connect([]() {
- surf_cpu_model_pm->addTraces();
- });
}
namespace simgrid {
void CpuCas01Model::addTraces()
{
- xbt_dict_cursor_t cursor = NULL;
- char *trace_name, *elm;
- static int called = 0;
- if (called)
- return;
- called = 1;
-
- /* connect host speed traces */
- 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);
- Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
-
- xbt_assert(cpu, "Host %s undefined", elm);
- xbt_assert(trace, "Trace %s undefined", trace_name);
-
- cpu->set_speed_trace(trace);
- }
+ THROW_DEADCODE;
}
/************
void **p_constraintCoreId=NULL;
public:
- void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF) */
- void set_speed_trace(tmgr_trace_t trace); /*< setup the trace file with availability events (peak speed changes due to external load) */
+ virtual void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF) */
+ virtual void set_speed_trace(tmgr_trace_t trace); /*< setup the trace file with availability events (peak speed changes due to external load) */
tmgr_trace_iterator_t p_stateEvent = nullptr;
s_surf_metric_t p_speed = {1.0, 0, nullptr};
surf_cpu_model_vm = new simgrid::surf::CpuTiModel();
xbt_dynar_push(all_existing_models, &surf_cpu_model_vm);
-
- simgrid::surf::on_postparse.connect([]() {
- surf_cpu_model_pm->addTraces();
- });
}
namespace simgrid {
void CpuTiModel::addTraces()
{
- xbt_dict_cursor_t cursor = NULL;
- char *trace_name, *elm;
-
- static int called = 0;
-
- if (called)
- return;
- called = 1;
-
-/* connect all traces relative to hosts */
- 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);
- CpuTi *cpu = static_cast<CpuTi*>(sg_host_by_name(elm)->pimpl_cpu);
-
- xbt_assert(cpu, "Host %s undefined", elm);
- xbt_assert(trace, "Trace %s undefined", trace_name);
-
- cpu->set_speed_trace(trace);
- }
+THROW_DEADCODE;
}
/************
int initiallyOn, tmgr_trace_t stateTrace) ;
~CpuTi();
- void set_speed_trace(tmgr_trace_t trace);
+ void set_speed_trace(tmgr_trace_t trace) override;
void apply_event(tmgr_trace_iterator_t event_type, double value) override;
void updateActionsFinishTime(double now);
xbt_dict_cursor_t cursor = NULL;
char *trace_name, *elm;
- if (!trace_connect_list_host_speed)
+ if (!trace_connect_list_link_avail)
return;
- /* Connect traces relative to cpu */
- 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);
- Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
-
- xbt_assert(cpu, "Host %s undefined", elm);
- xbt_assert(trace, "Trace %s undefined", trace_name);
-
- cpu->set_speed_trace(trace);
- }
-
/* Connect traces relative to network */
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);
*********/
/* For the trace and trace:connect tag (store their content till the end of the parsing) */
XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_host_speed;
XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_avail;
XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_bw;
XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_lat;
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);
+ }
+
/* Free my data */
xbt_dict_free(&trace_connect_list_host_avail);