X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/534f014f5cdaaa847489cfdb9325849cfdeeedfe..0e4aeb6a5d4165c8ba038514f09da26751a93538:/src/instr/instr_interface.cpp diff --git a/src/instr/instr_interface.cpp b/src/instr/instr_interface.cpp index b1979f37bd..4c484f2652 100644 --- a/src/instr/instr_interface.cpp +++ b/src/instr/instr_interface.cpp @@ -148,7 +148,7 @@ void TRACE_declare_mark(const char *mark_type) } XBT_DEBUG("MARK,declare %s", mark_type); - simgrid::instr::Type::getRootType()->getOrCreateEventType(mark_type); + simgrid::instr::Container::getRootContainer()->type_->getOrCreateEventType(mark_type); declared_marks.insert(mark_type); } @@ -178,7 +178,8 @@ void TRACE_declare_mark_value_with_color (const char *mark_type, const char *mar if (not mark_value) THROWF (tracing_error, 1, "mark_value is nullptr"); - simgrid::instr::Type* type = simgrid::instr::Type::getRootType()->byName(mark_type); + simgrid::instr::EventType* type = + static_cast(simgrid::instr::Container::getRootContainer()->type_->byName(mark_type)); if (not type) { THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type); } else { @@ -233,12 +234,14 @@ void TRACE_mark(const char *mark_type, const char *mark_value) THROWF (tracing_error, 1, "mark_value is nullptr"); //check if mark_type is already declared - simgrid::instr::Type* type = simgrid::instr::Type::getRootType()->byName(mark_type); + simgrid::instr::EventType* type = + static_cast(simgrid::instr::Container::getRootContainer()->type_->byName(mark_type)); if (not type) { THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type); } else { XBT_DEBUG("MARK %s %s", mark_type, mark_value); - new simgrid::instr::NewEvent(MSG_get_clock(), PJ_container_get_root(), type, type->getEntityValue(mark_value)); + new simgrid::instr::NewEvent(MSG_get_clock(), simgrid::instr::Container::getRootContainer(), type, + type->getEntityValue(mark_value)); } } @@ -257,7 +260,7 @@ xbt_dynar_t TRACE_get_marks () return instr_set_to_dynar(&declared_marks); } -static void instr_user_variable(double time, const char* resource, const char* variable, const char* father_type, +static void instr_user_variable(double time, const char* resource, const char* variable_name, const char* father_type, double value, InstrUserVariable what, const char* color, std::set* filter) { /* safe switches. tracing has to be activated and if platform is not traced, we don't allow user variables */ @@ -265,27 +268,24 @@ static void instr_user_variable(double time, const char* resource, const char* v return; //check if variable is already declared - auto created = filter->find(variable); + auto created = filter->find(variable_name); if (what == INSTR_US_DECLARE){ if (created == filter->end()) { // not declared yet - filter->insert(variable); - instr_new_user_variable_type(father_type, variable, color == nullptr ? "" : color); + filter->insert(variable_name); + instr_new_user_variable_type(father_type, variable_name, color == nullptr ? "" : color); } }else{ if (created != filter->end()) { // declared, let's work - char valuestr[100]; - snprintf(valuestr, 100, "%g", value); - container_t container = simgrid::instr::Container::byName(resource); - simgrid::instr::Type* type = container->type_->byName(variable); + simgrid::instr::VariableType* variable = simgrid::instr::Container::byName(resource)->getVariable(variable_name); switch (what){ case INSTR_US_SET: - new simgrid::instr::SetVariableEvent(time, container, type, value); + variable->setEvent(time, value); break; case INSTR_US_ADD: - new simgrid::instr::AddVariableEvent(time, container, type, value); + variable->addEvent(time, value); break; case INSTR_US_SUB: - new simgrid::instr::SubVariableEvent(time, container, type, value); + variable->subEvent(time, value); break; default: THROW_IMPOSSIBLE; @@ -938,10 +938,10 @@ void TRACE_host_state_declare_value (const char *state, const char *value, const */ void TRACE_host_set_state(const char* host, const char* state_name, const char* value_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::Type* state = container->type_->byName(state_name); + container_t container = simgrid::instr::Container::byName(host); + simgrid::instr::StateType* state = container->getState(state_name); state->addEntityValue(value_name); - new simgrid::instr::SetStateEvent(MSG_get_clock(), container, state, state->getEntityValue(value_name)); + state->setEvent(value_name); } /** \ingroup TRACE_user_variables @@ -957,10 +957,10 @@ void TRACE_host_set_state(const char* host, const char* state_name, const char* */ void TRACE_host_push_state(const char* host, const char* state_name, const char* value_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::Type* state = container->type_->byName(state_name); + container_t container = simgrid::instr::Container::byName(host); + simgrid::instr::StateType* state = container->getState(state_name); state->addEntityValue(value_name); - new simgrid::instr::PushStateEvent(MSG_get_clock(), container, state, state->getEntityValue(value_name)); + state->pushEvent(value_name); } /** \ingroup TRACE_user_variables @@ -973,11 +973,9 @@ void TRACE_host_push_state(const char* host, const char* state_name, const char* * * \see TRACE_host_state_declare, TRACE_host_set_state, TRACE_host_push_state, TRACE_host_reset_state */ -void TRACE_host_pop_state (const char *host, const char *state) +void TRACE_host_pop_state(const char* host, const char* state_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::Type* type = container->type_->byName(state); - new simgrid::instr::PopStateEvent(MSG_get_clock(), container, type); + simgrid::instr::Container::byName(host)->getState(state_name)->popEvent(); } /** \ingroup TRACE_API