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)
std::vector<VariableEvent*> events_;
public:
VariableType(const std::string& name, const std::string& color, Type* father);
- ~VariableType();
void instr_event(double now, double delta, const char* resource, double value);
void set_event(double timestamp, double value);
void add_event(double timestamp, double value);
class ValueType : public Type {
public:
- std::map<std::string, EntityValue*> values_;
+ std::map<std::string, EntityValue> values_;
ValueType(const std::string& name, const std::string& alias, Type* father) : Type(name, alias, "", father){};
ValueType(const std::string& name, Type* father) : Type(name, name, "", father){};
- virtual ~ValueType();
+ virtual ~ValueType() = default;
void add_entity_value(const std::string& name, const std::string& color);
void add_entity_value(const std::string& name);
EntityValue* get_entity_value(const std::string& name);
std::vector<StateEvent*> events_;
public:
StateType(const std::string& name, Type* father);
- ~StateType();
void set_event(const std::string& value_name);
void push_event(const std::string& value_name);
void push_event(const std::string& value_name, TIData* extra);