From 04c6c7d463281bc4abe2788699ed1bcc6368e83e Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Mon, 4 Sep 2017 01:48:45 +0200 Subject: [PATCH] start cleaning up the instr::containers --- src/instr/instr_paje_containers.cpp | 23 +++++++---------------- src/instr/instr_private.h | 2 +- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/instr/instr_paje_containers.cpp b/src/instr/instr_paje_containers.cpp index 24138376f5..9208684f97 100644 --- a/src/instr/instr_paje_containers.cpp +++ b/src/instr/instr_paje_containers.cpp @@ -39,25 +39,18 @@ void PJ_container_set_root (container_t root) } simgrid::instr::Container::Container(const char* name, simgrid::instr::e_container_types kind, Container* father) + : name_(xbt_strdup(name)), father_(father) { - if (name == nullptr){ - THROWF (tracing_error, 0, "can't create a container with a nullptr name"); - } + xbt_assert(name != nullptr, "Container name cannot be nullptr"); static long long int container_id = 0; - char id_str[INSTR_DEFAULT_STR_SIZE]; - snprintf (id_str, INSTR_DEFAULT_STR_SIZE, "%lld", container_id); + id_ = bprintf("%lld", container_id); // id (or alias) of the container container_id++; - name_ = xbt_strdup(name); // name of the container - id_ = xbt_strdup(id_str); // id (or alias) of the container - father_ = father; - sg_host_t sg_host = sg_host_by_name(name); - //Search for network_element_t switch (kind){ case simgrid::instr::INSTR_HOST: - this->netpoint_ = sg_host->pimpl_netpoint; + this->netpoint_ = sg_host_by_name(name)->pimpl_netpoint; xbt_assert(this->netpoint_, "Element '%s' not found", name); break; case simgrid::instr::INSTR_ROUTER: @@ -73,13 +66,11 @@ simgrid::instr::Container::Container(const char* name, simgrid::instr::e_contain break; } - // level depends on level of father - if (this->father_) { - this->level_ = this->father_->level_ + 1; + if (father_) { + this->level_ = father_->level_ + 1; XBT_DEBUG("new container %s, child of %s", name, father->name_); - }else{ - this->level_ = 0; } + // type definition (method depends on kind of this new container) this->kind_ = kind; if (this->kind_ == simgrid::instr::INSTR_AS) { diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index 6ed519ef7d..ea77f8bda7 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -116,7 +116,7 @@ public: char* name_; /* Unique name of this container */ char* id_; /* Unique id of this container */ Type* type_; /* Type of this container */ - int level_; /* Level in the hierarchy, root level is 0 */ + int level_ = 0; /* Level in the hierarchy, root level is 0 */ e_container_types kind_; /* This container is of what kind */ Container* father_; xbt_dict_t children_; -- 2.20.1