/* connect all traces relative to hosts */
xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- CpuCas01 *host = static_cast<CpuCas01*>(sg_host_by_name(elm)->pimpl_cpu);
+ Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
- xbt_assert(host, "Host %s undefined", elm);
+ xbt_assert(cpu, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
- host->setStateEvent(tmgr_history_add_trace(history, trace, 0.0, 0, host));
+ cpu->set_state_trace(trace);
}
- xbt_dict_foreach(trace_connect_list_power, cursor, trace_name, elm) {
+ 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);
- CpuCas01 *host = static_cast<CpuCas01*>(sg_host_by_name(elm)->pimpl_cpu);
+ Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
- xbt_assert(host, "Host %s undefined", elm);
+ xbt_assert(cpu, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
- host->setPowerEvent(tmgr_history_add_trace(history, trace, 0.0, 0, host));
+ cpu->set_speed_trace(trace);
}
}
speedPeak, pstate,
core, xbt_dynar_get_as(speedPeak, pstate, double), speedScale,
initiallyOn) {
- p_speedEvent = NULL;
XBT_DEBUG("CPU create: peak=%f, pstate=%d", m_speedPeak, m_pstate);
m_core = core;
if (speedTrace)
- p_speedEvent = tmgr_history_add_trace(history, speedTrace, 0.0, 0, this);
+ p_speedEvent = future_evt_set->add_trace(speedTrace, 0.0, this);
if (stateTrace)
- p_stateEvent = tmgr_history_add_trace(history, stateTrace, 0.0, 0, this);
+ p_stateEvent = future_evt_set->add_trace(stateTrace, 0.0, this);
}
CpuCas01::~CpuCas01()
xbt_dynar_free(&p_speedPeakList);
}
-void CpuCas01::setStateEvent(tmgr_trace_iterator_t stateEvent)
-{
- p_stateEvent = stateEvent;
-}
-
-void CpuCas01::setPowerEvent(tmgr_trace_iterator_t powerEvent)
-{
- p_speedEvent = powerEvent;
-}
-
xbt_dynar_t CpuCas01::getSpeedPeakList(){
return p_speedPeakList;
}
m_speedScale = value;
onSpeedChange();
- if (tmgr_trace_event_free(event_type))
- p_speedEvent = NULL;
+ tmgr_trace_event_unref(&p_speedEvent);
} else if (event_type == p_stateEvent) {
/* TODO (Hypervisor): do the same thing for constraint_core[i] */
xbt_assert(m_core == 1, "FIXME: add state change code also for constraint_core[i]");
}
}
}
- if (tmgr_trace_event_free(event_type))
- p_stateEvent = NULL;
+ tmgr_trace_event_unref(&p_stateEvent);
} else {
- XBT_CRITICAL("Unknown event ! \n");
- xbt_abort();
+ xbt_die("Unknown event!\n");
}
return;
}
-CpuAction *CpuCas01::execute(double size)
+CpuAction *CpuCas01::execution_start(double size)
{
XBT_IN("(%s,%g)", getName(), size);