delete elm.second;
}
-ValueType::~ValueType()
-{
- for (auto elm : values_)
- delete elm.second;
-}
-
ContainerType::ContainerType(const std::string& name, Type* father) : Type(name, name, "", father)
{
XBT_DEBUG("ContainerType %s(%lld), child of %s(%lld)", get_cname(), get_id(), father->get_cname(), father->get_id());
log_definition(PAJE_DefineStateType);
}
-StateType::~StateType()
-{
- events_.clear();
-}
-
void StateType::set_event(const std::string& value_name)
{
events_.push_back(new StateEvent(issuer_, this, PAJE_SetState, get_entity_value(value_name), nullptr));
log_definition(PAJE_DefineVariableType);
}
-VariableType::~VariableType()
-{
- events_.clear();
-}
-
void VariableType::instr_event(double now, double delta, const char* resource, double value)
{
/* To trace resource utilization, we use AddEvent and SubEvent only. This implies to add a SetEvent first to set the
auto it = values_.find(name);
if (it == values_.end()) {
- EntityValue* new_val = new EntityValue(name, color, this);
- values_.insert({name, new_val});
+ auto res = values_.emplace(name, EntityValue(name, color, this));
XBT_DEBUG("new value %s, child of %s", name.c_str(), get_cname());
- new_val->print();
+ res.first->second.print();
}
}
if (ret == values_.end()) {
THROWF(tracing_error, 2, "value with name (%s) not found in father type (%s)", name.c_str(), get_cname());
}
- return ret->second;
+ return &ret->second;
}
VariableType* Type::by_name_or_create(const std::string& name, const std::string& color)