X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7adf7d3cc45bf13462b257c7e3bc8a2eae2bf981..52b607a095dff5da679b2591077fce8b51127133:/src/instr/instr_interface.cpp diff --git a/src/instr/instr_interface.cpp b/src/instr/instr_interface.cpp index 0182dd2122..455dffee60 100644 --- a/src/instr/instr_interface.cpp +++ b/src/instr/instr_interface.cpp @@ -9,7 +9,7 @@ #include "src/kernel/routing/NetPoint.hpp" #include "src/surf/network_interface.hpp" #include "src/surf/surf_private.hpp" -#include "surf/surf.h" +#include "surf/surf.hpp" #include enum InstrUserVariable { INSTR_US_DECLARE, INSTR_US_SET, INSTR_US_ADD, INSTR_US_SUB }; @@ -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::getRoot()->type_->getOrCreateEventType(mark_type); declared_marks.insert(mark_type); } @@ -179,7 +179,7 @@ void TRACE_declare_mark_value_with_color (const char *mark_type, const char *mar THROWF (tracing_error, 1, "mark_value is nullptr"); simgrid::instr::EventType* type = - static_cast(simgrid::instr::Type::getRootType()->byName(mark_type)); + static_cast(simgrid::instr::Container::getRoot()->type_->byName(mark_type)); if (not type) { THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type); } else { @@ -235,12 +235,12 @@ void TRACE_mark(const char *mark_type, const char *mark_value) //check if mark_type is already declared simgrid::instr::EventType* type = - static_cast(simgrid::instr::Type::getRootType()->byName(mark_type)); + static_cast(simgrid::instr::Container::getRoot()->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(), simgrid::instr::Container::getRootContainer(), type, + new simgrid::instr::NewEvent(MSG_get_clock(), simgrid::instr::Container::getRoot(), type, type->getEntityValue(mark_value)); } } @@ -260,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 */ @@ -268,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; @@ -310,7 +307,7 @@ static void instr_user_srcdst_variable(double time, const char *src, const char xbt_die("Element '%s' not found!",dst); std::vector route; - simgrid::kernel::routing::NetZoneImpl::getGlobalRoute(src_elm, dst_elm, &route, nullptr); + simgrid::kernel::routing::NetZoneImpl::getGlobalRoute(src_elm, dst_elm, route, nullptr); for (auto const& link : route) instr_user_variable(time, link->getCname(), variable, father_type, value, what, nullptr, &user_link_variables); } @@ -941,10 +938,9 @@ 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::StateType* state = static_cast(container->type_->byName(state_name)); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(host)->getState(state_name); state->addEntityValue(value_name); - state->setEvent(MSG_get_clock(), container, value_name); + state->setEvent(value_name); } /** \ingroup TRACE_user_variables @@ -960,10 +956,7 @@ 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::StateType* state = static_cast(container->type_->byName(state_name)); - state->addEntityValue(value_name); - state->pushEvent(MSG_get_clock(), container, value_name); + simgrid::instr::Container::byName(host)->getState(state_name)->pushEvent(value_name); } /** \ingroup TRACE_user_variables @@ -978,9 +971,7 @@ void TRACE_host_push_state(const char* host, const char* state_name, const char* */ void TRACE_host_pop_state(const char* host, const char* state_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::StateType* state = static_cast(container->type_->byName(state_name)); - state->popEvent(MSG_get_clock(), container); + simgrid::instr::Container::byName(host)->getState(state_name)->popEvent(); } /** \ingroup TRACE_API