Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Prefer using "try_emplace" (sonar, c++17).
[simgrid.git] / src / instr / instr_paje_types.cpp
index 2ee0563..0e31281 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
@@ -9,9 +9,6 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_paje_types, instr, "Paje tracing event system (types)");
 
-// to check if variables were previously set to 0, otherwise paje won't simulate them
-static std::set<std::string, std::less<>> platform_variables;
-
 namespace simgrid {
 namespace instr {
 
@@ -22,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,6 +65,9 @@ void VariableType::instr_event(double now, double delta, const char* resource, d
    * non-determined value, hence causing analysis problems.
    */
 
+  // 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();
 
@@ -96,19 +96,14 @@ void VariableType::sub_event(double timestamp, double value)
   events_.push_back(new VariableEvent(timestamp, get_issuer(), this, PajeEventType::SubVariable, value));
 }
 
-void LinkType::start_event(Container* startContainer, const std::string& value, const std::string& key)
-{
-  start_event(startContainer, value, key, -1);
-}
-
-void LinkType::start_event(Container* startContainer, const std::string& value, const std::string& key, int size)
+void LinkType::start_event(Container* startContainer, const std::string& value, const std::string& key, size_t size)
 {
   new LinkEvent(get_issuer(), this, PajeEventType::StartLink, startContainer, value, key, size);
 }
 
 void LinkType::end_event(Container* endContainer, const std::string& value, const std::string& key)
 {
-  new LinkEvent(get_issuer(), this, PajeEventType::EndLink, endContainer, value, key, -1);
+  new LinkEvent(get_issuer(), this, PajeEventType::EndLink, endContainer, value, key);
 }
 
 Type* Type::by_name(const std::string& name)
@@ -124,7 +119,7 @@ Type* Type::by_name(const std::string& name)
     }
   }
   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;
 }
@@ -142,7 +137,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, EntityValue(name, color, this));
   }
 }
 
@@ -150,7 +145,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;