Version: SMASH-3.1
configuration.cc File Reference
#include "smash/configuration.h"
#include <cstdio>
#include <filesystem>
#include <string>
#include <vector>
#include "yaml-cpp/yaml.h"
#include "smash/forwarddeclarations.h"
#include "smash/input_keys.h"
#include "smash/inputfunctions.h"
#include "smash/logging.h"
#include "smash/stringfunctions.h"

Go to the source code of this file.

Classes

struct  smash::anonymous_namespace{configuration.cc}::IsStdMap< T >
 A utility type to be specialized to check if a type is a std::map . More...
 
struct  smash::anonymous_namespace{configuration.cc}::IsStdMap< std::map< MapKey, MapValue > >
 A specialization of IsStdMap<T> for cases where the boolean value should be set to true. More...
 

Namespaces

 smash
 
 smash::anonymous_namespace{configuration.cc}
 

Functions

void smash::anonymous_namespace{configuration.cc}::descend_one_existing_level (std::optional< YAML::Node > &node, std::string_view key)
 Reset the passed in node to that one at the provided key, which is expected to exist in the node. More...
 
YAML::Node smash::anonymous_namespace{configuration.cc}::remove_empty_maps (YAML::Node root)
 Remove all empty maps of a YAML::Node. More...
 
YAML::Node smash::anonymous_namespace{configuration.cc}::operator|= (YAML::Node a, const YAML::Node &b)
 Merge two YAML::Nodes. More...
 
std::string smash::anonymous_namespace{configuration.cc}::join_quoted (std::initializer_list< const char * > keys)
 Build a string with a list of keys as specified in the code. More...
 
void smash::anonymous_namespace{configuration.cc}::fill_list_of_labels_per_key_in_yaml_tree (const YAML::Node &root_node, std::vector< KeyLabels > &list, KeyLabels &new_list_entry)
 Implementation of the algorithm to translate a YAML tree into lists of labels, each identifying a key from the YAML root node. More...
 
auto smash::anonymous_namespace{configuration.cc}::get_list_of_labels_per_key_in_yaml_tree (const YAML::Node &root_node)
 Create a list of lists of key labels present in the passed YAML node considered to be the root one of a YAML tree. More...
 
auto smash::anonymous_namespace{configuration.cc}::collect_input_keys_taken_as_maps ()
 Extract from the InputKeys database the labels of keys that have a std::map as type. More...
 
void smash::anonymous_namespace{configuration.cc}::adjust_list_of_labels_dealing_with_keys_taken_as_maps (std::vector< KeyLabels > &list_of_input_key_labels)
 Remove last labels of keys that are taken as maps in SMASH and remove duplicates from the resulting list. More...
 
Configuration::Is smash::anonymous_namespace{configuration.cc}::validate_key (const KeyLabels &labels)
 Given some YAML labels (assumed to be in order from the top section), it is checked whether any valid SMASH key with the same key exists. More...
 
void smash::anonymous_namespace{configuration.cc}::accumulate_validation (Configuration::Is &result_so_far, Configuration::Is new_value)
 Utility function to accumulate validation results of keys. More...
 

Variables

static constexpr int smash::LConfiguration = LogArea::Configuration::id