X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c1b3e440de2150420b08c0bc55a125a0c9eb86bc..5ce2cc84f1f1154453e9534505c394fbd2b89e05:/src/instr/instr_paje_types.hpp diff --git a/src/instr/instr_paje_types.hpp b/src/instr/instr_paje_types.hpp index 80c7a8b2a8..0c9c66834c 100644 --- a/src/instr/instr_paje_types.hpp +++ b/src/instr/instr_paje_types.hpp @@ -7,6 +7,7 @@ #define INSTR_PAJE_TYPES_HPP #include "src/instr/instr_private.hpp" +#include #include #include #include @@ -23,26 +24,26 @@ class Type { Type* father_; public: - std::map children_; + std::map> children_; Container* issuer_ = nullptr; std::stringstream stream_; - Type(std::string name, std::string alias, std::string color, Type* father); - virtual ~Type(); + Type(const std::string& name, const std::string& alias, const std::string& color, Type* father); + virtual ~Type() = default; - std::string get_name() { return name_; } + const std::string& get_name() const { return name_; } const char* get_cname() { return name_.c_str(); } long long int get_id() { return id_; } bool is_colored() { return not color_.empty(); } - Type* by_name(std::string name); - LinkType* by_name_or_create(std::string name, Type* source, Type* dest); - VariableType* by_name_or_create(std::string name, std::string color); + Type* by_name(const std::string& name); + LinkType* by_name_or_create(const std::string& name, Type* source, Type* dest); + VariableType* by_name_or_create(const std::string& name, const std::string& color); - template T* by_name_or_create(std::string name) + template T* by_name_or_create(const std::string& name) { auto cont = children_.find(name); - return cont == children_.end() ? new T(name, this) : static_cast(cont->second); + return cont == children_.end() ? new T(name, this) : static_cast(cont->second.get()); } void set_calling_container(Container* container) { issuer_ = container; } @@ -53,15 +54,14 @@ public: class ContainerType : public Type { public: - explicit ContainerType(std::string name) : Type(name, name, "", nullptr){}; - ContainerType(std::string name, Type* father); + explicit ContainerType(const std::string& name) : Type(name, name, "", nullptr){}; + ContainerType(const std::string& name, Type* father); }; class VariableType : public Type { std::vector events_; public: - VariableType(std::string name, std::string color, Type* father); - ~VariableType(); + VariableType(const std::string& name, const std::string& color, Type* father); 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); @@ -70,36 +70,35 @@ public: class ValueType : public Type { public: - std::map values_; - ValueType(std::string name, std::string alias, Type* father) : Type(std::move(name), std::move(alias), "", father){}; - ValueType(std::string name, Type* father) : Type(name, name, "", father){}; - virtual ~ValueType(); - void add_entity_value(std::string name, std::string color); - void add_entity_value(std::string name); - EntityValue* get_entity_value(std::string name); + std::map 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() = 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); }; class LinkType : public ValueType { public: - LinkType(std::string name, std::string alias, Type* father); - void start_event(Container* startContainer, std::string value, std::string key); - void start_event(Container* startContainer, std::string value, std::string key, int size); - void end_event(Container* endContainer, std::string value, std::string key); + LinkType(const std::string& name, const std::string& alias, Type* father); + void start_event(Container* startContainer, const std::string& value, const std::string& key); + void start_event(Container* startContainer, const std::string& value, const std::string& key, int size); + void end_event(Container* endContainer, const std::string& value, const std::string& key); }; class EventType : public ValueType { public: - EventType(std::string name, Type* father); + EventType(const std::string& name, Type* father); }; class StateType : public ValueType { std::vector events_; public: - StateType(std::string name, Type* father); - ~StateType(); - void set_event(std::string value_name); - void push_event(std::string value_name); - void push_event(std::string value_name, TIData* extra); + StateType(const std::string& name, Type* father); + 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); void pop_event(); void pop_event(TIData* extra); };