X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9cca09ad88fcaeb49f2637de97df519c3920aaa4..064b14e9ad70077e74cbc8ce42d4925f80d76ed4:/src/instr/instr_private.hpp diff --git a/src/instr/instr_private.hpp b/src/instr/instr_private.hpp index 09823441ac..6822b2648b 100644 --- a/src/instr/instr_private.hpp +++ b/src/instr/instr_private.hpp @@ -29,6 +29,9 @@ namespace simgrid { namespace instr { + +class Value; + enum e_event_type { PAJE_DefineContainerType, PAJE_DefineVariableType, @@ -55,30 +58,33 @@ enum e_entity_types { TYPE_VARIABLE, TYPE_LINK, TYPE_CONTAINER, TYPE_STATE, TYPE //-------------------------------------------------- class Type { -public: - char* id_; - char* name_; - char* color_; + std::string id_; + std::string name_; +public: + std::string color_; e_entity_types kind_; Type* father_; - xbt_dict_t children_; - xbt_dict_t values_; // valid for all types except variable and container - Type(const char* typeNameBuff, const char* key, const char* color, e_entity_types kind, Type* father); + std::map children_; + std::map values_; // valid for all types except variable and container + Type(std::string name, const char* key, std::string color, e_entity_types kind, Type* father); ~Type(); - Type* getChild(const char* name); - Type* getChildOrNull(const char* name); + Type* getChild(std::string name); + Type* getChildOrNull(std::string name); static Type* containerNew(const char* name, Type* father); static Type* eventNew(const char* name, Type* father); - static Type* variableNew(const char* name, const char* color, Type* father); + static Type* variableNew(const char* name, std::string color, Type* father); static Type* linkNew(const char* name, Type* father, Type* source, Type* dest); static Type* stateNew(const char* name, Type* father); + std::string getName() { return name_; } + const char* getCname() { return name_.c_str(); } + const char* getId() { return id_.c_str(); } + bool isColored() { return not color_.empty(); } }; //-------------------------------------------------- class Value { -private: std::string name_; std::string id_; std::string color_; @@ -123,6 +129,9 @@ public: e_container_types kind_; /* This container is of what kind */ Container* father_; std::map children_; + static Container* byNameOrNull(std::string name); + static Container* byName(std::string name); + void removeFromParent(); }; //-------------------------------------------------- @@ -138,6 +147,7 @@ public: : container(container), type(type), timestamp_(timestamp), eventType_(eventType){}; virtual void print() = 0; virtual ~PajeEvent(); + void insertIntoBuffer(); }; //-------------------------------------------------- @@ -208,10 +218,10 @@ class StartLinkEvent : public PajeEvent { int size_; public: - StartLinkEvent(double timestamp, Container* container, Type* type, Container* sourceContainer, const char* value, - const char* key); - StartLinkEvent(double timestamp, Container* container, Type* type, Container* sourceContainer, const char* value, - const char* key, int size); + StartLinkEvent(double timestamp, Container* container, Type* type, Container* sourceContainer, std::string value, + std::string key); + StartLinkEvent(double timestamp, Container* container, Type* type, Container* sourceContainer, std::string value, + std::string key, int size); void print() override; }; @@ -301,11 +311,8 @@ XBT_PUBLIC(void) TRACE_surf_resource_utilization_alloc(); extern XBT_PRIVATE std::set trivaNodeTypes; extern XBT_PRIVATE std::set trivaEdgeTypes; XBT_PRIVATE long long int instr_new_paje_id(); -XBT_PUBLIC(container_t) PJ_container_get(const char* name); -XBT_PUBLIC(simgrid::instr::Container*) PJ_container_get_or_null(const char* name); XBT_PUBLIC(container_t) PJ_container_get_root (); XBT_PUBLIC(void) PJ_container_set_root (container_t root); -XBT_PUBLIC(void) PJ_container_remove_from_parent (container_t container); /* instr_paje_types.c */ XBT_PUBLIC(simgrid::instr::Type*) PJ_type_get_root();