-/* 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
// 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);
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();
}
}
}
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);
}
}