Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Misc code simplifications guided by Sonar smells.
[simgrid.git] / src / instr / instr_paje_types.cpp
index 26658b9..b3486f7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2021. The SimGrid Team.
+/* Copyright (c) 2012-2022. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -19,15 +19,15 @@ long long int new_paje_id()
 }
 
 Type::Type(PajeEventType event_type, const std::string& name, const std::string& alias, const std::string& color,
-           Type* father)
-    : name_(name), color_(color), father_(father)
+           Type* parent)
+    : name_(name), color_(color), parent_(parent)
 {
   if (name_.empty() || alias.empty())
     throw TracingError(XBT_THROW_POINT, "can't create a new type with no name or alias");
 
-  if (father != nullptr){
-    father->children_[alias].reset(this);
-    XBT_DEBUG("new type %s, child of %s", get_cname(), father->get_cname());
+  if (parent != nullptr) {
+    parent->children_[alias].reset(this);
+    XBT_DEBUG("new type %s, child of %s", get_cname(), parent->get_cname());
     on_creation(*this, event_type);
   }
 }
@@ -68,14 +68,10 @@ void VariableType::instr_event(double now, double delta, const char* resource, d
   // to check if variables were previously set to 0, otherwise paje won't simulate them
   static std::set<std::string, std::less<>> platform_variables;
 
-  // create a key considering the resource and variable
-  std::string key = std::string(resource) + get_name();
-
-  // check if key exists: if it doesn't, set the variable to zero and mark this in the global map.
-  if (platform_variables.find(key) == platform_variables.end()) {
+  // create a key considering the resource and variable, and check if key exists in the global map:
+  // if it doesn't, set the variable to zero.
+  if (platform_variables.emplace(std::string(resource) + get_name()).second)
     set_event(now, 0);
-    platform_variables.insert(key);
-  }
 
   add_event(now, value);
   sub_event(now + delta, value);
@@ -109,17 +105,17 @@ void LinkType::end_event(Container* endContainer, const std::string& value, cons
 Type* Type::by_name(const std::string& name)
 {
   Type* ret = nullptr;
-  for (auto const& elm : children_) {
-    if (elm.second->name_ == name) {
+  for (auto const& [_, child] : children_) {
+    if (child->name_ == name) {
       if (ret != nullptr) {
         throw TracingError(XBT_THROW_POINT, "there are two children types with the same name?");
       } else {
-        ret = elm.second.get();
+        ret = child.get();
       }
     }
   }
   if (ret == nullptr)
-    throw TracingError(XBT_THROW_POINT, xbt::string_printf("type with name (%s) not found in father type (%s)",
+    throw TracingError(XBT_THROW_POINT, xbt::string_printf("type with name (%s) not found in parent type (%s)",
                                                            name.c_str(), get_cname()));
   return ret;
 }
@@ -137,7 +133,7 @@ void ValueType::add_entity_value(const std::string& name, const std::string& col
   auto it = values_.find(name);
   if (it == values_.end()) {
     XBT_DEBUG("new value %s, child of %s", name.c_str(), get_cname());
-    values_.emplace(name, EntityValue(name, color, this));
+    values_.try_emplace(name, name, color, this);
   }
 }
 
@@ -145,7 +141,7 @@ EntityValue* ValueType::get_entity_value(const std::string& name)
 {
   auto ret = values_.find(name);
   if (ret == values_.end()) {
-    throw TracingError(XBT_THROW_POINT, xbt::string_printf("value with name (%s) not found in father type (%s)",
+    throw TracingError(XBT_THROW_POINT, xbt::string_printf("value with name (%s) not found in parent type (%s)",
                                                            name.c_str(), get_cname()));
   }
   return &ret->second;