Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2023.
[simgrid.git] / src / instr / instr_paje_containers.cpp
index 8442abd..5ebe79a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2023. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -10,8 +10,7 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_paje_containers, instr, "Paje tracing event system (containers)");
 
-namespace simgrid {
-namespace instr {
+namespace simgrid::instr {
 
 Container* Container::root_container_ = nullptr;              /* the root container */
 std::map<std::string, Container*, std::less<>> Container::all_containers_; /* all created containers indexed by name */
@@ -21,9 +20,9 @@ NetZoneContainer::NetZoneContainer(const std::string& name, unsigned int level,
 {
   xbt_assert(s4u::Engine::get_instance()->netpoint_by_name_or_null(get_name()), "Element '%s' not found", get_cname());
   if (parent_) {
-    std::string type_name = std::string("L") + std::to_string(level);
+    std::string type_name = "L" + std::to_string(level);
     type_                 = parent_->type_->by_name_or_create<ContainerType>(type_name);
-    parent_->children_.insert({get_name(), this});
+    parent_->children_.try_emplace(get_name(), this);
     on_creation(*this);
   } else {
     type_         = new ContainerType("0");
@@ -57,13 +56,13 @@ Container::Container(const std::string& name, const std::string& type_name, Cont
 
     if (not type_name.empty()) {
       type_ = parent_->type_->by_name_or_create<ContainerType>(type_name);
-      parent_->children_.insert({name_, this});
+      parent_->children_.try_emplace(name_, this);
       on_creation(*this);
     }
   }
 
   //register all kinds by name
-  if (not all_containers_.emplace(name_, this).second)
+  if (not all_containers_.try_emplace(name_, this).second)
     throw TracingError(XBT_THROW_POINT,
                        xbt::string_printf("container %s already present in all_containers_", get_cname()));
 
@@ -74,8 +73,8 @@ Container::~Container()
 {
   XBT_DEBUG("destroy container %s", get_cname());
   // Begin with destroying my own children
-  for (auto child : children_)
-    delete child.second;
+  for (auto const& [_, child] : children_)
+    delete child;
 
   // remove me from the all_containers_ data structure
   all_containers_.erase(name_);
@@ -136,5 +135,4 @@ EntityValue::EntityValue(const std::string& name, const std::string& color, Type
   on_creation(*this);
 }
 
-} // namespace instr
-} // namespace simgrid
+} // namespace simgrid::instr