21#ifndef CONFIGPARSER_HPP
22#define CONFIGPARSER_HPP
30typedef std::map<std::string, std::vector<std::string>> configList;
38 T aConfig(std::string section, std::string name,
size_t pos = 0);
40 std::vector<T> aConfigVec(std::string section, std::string name);
44 static void handleMissingKey (std::string);
45 configList mConfigurations;
50bool ConfigParser::aConfig<bool>(std::string section, std::string name,
size_t pos);
53T ConfigParser::aConfig(std::string section, std::string configName,
size_t pos) {
57 const auto& mConfigRef = mConfigurations;
58 auto search = mConfigRef.find(section +
" - " + configName);
60 if (search == mConfigRef.end()) {
61 handleMissingKey (std::string(
"Could not find required configuration section ") + section + std::string(
" key ") + configName);
64 std::istringstream iss(search->second[0]);
66 if (search->second[0].find(
"0x" ) != std::string::npos)
67 iss >> std::hex >> tmp;
69 iss >> std::dec >> tmp;
75std::vector<bool> ConfigParser::aConfigVec<bool>(std::string section, std::string name);
78std::vector<T> ConfigParser::aConfigVec(std::string section, std::string configName) {
81 const auto& mConfigRef = mConfigurations;
82 auto search = mConfigRef.find(section +
" - " + configName);
84 if (search == mConfigRef.end()) {
85 handleMissingKey (std::string(
"Could not find required configuration section ") + section + std::string(
" key ") + configName);
89 std::vector<T> tmp(search->second.size());
90 for (
unsigned i = 0; i < search->second.size(); i++) {
92 std::istringstream iss(search->second[i]);
94 if (search->second[i].find(
"0x" ) != std::string::npos)
95 iss >> std::hex >> tmp[i];
97 iss >> std::dec >> tmp[i];
Definition configparser.hpp:32