3 #ifndef XJMUSIC_CONFIG_PARSER_H
4 #define XJMUSIC_CONFIG_PARSER_H
27 std::variant<std::string, int, float, bool> value;
36 explicit ConfigSingleValue(
const std::variant<std::string, int, float, bool> &value);
42 [[nodiscard]] std::string
getString()
const;
48 [[nodiscard]]
float getFloat()
const;
54 [[nodiscard]]
int getInt()
const;
81 std::map<std::string, std::variant<ConfigSingleValue, std::vector<ConfigSingleValue>>> data;
88 unsigned long size()
const;
102 std::vector<ConfigSingleValue>
atList(
const std::string &index);
109 void set(
const std::string &key,
const std::variant<
ConfigSingleValue, std::vector<ConfigSingleValue>> &value);
115 std::map<std::string, std::variant<ConfigSingleValue, std::vector<ConfigSingleValue>>>
asMapOfSingleOrList();
142 std::vector<std::variant<ConfigSingleValue, ConfigObjectValue>> data;
149 unsigned long size()
const;
167 std::vector<std::map<std::string, std::variant<std::string, std::vector<std::string>>>>
asListOfMapsOfStrings();
187 void add(
const std::variant<ConfigSingleValue, ConfigObjectValue> &value);
214 [[nodiscard]]
const char *
what() const noexcept
override {
215 return message.c_str();
223 std::map<std::string, std::variant<ConfigSingleValue, ConfigObjectValue, ConfigListValue>> config;
267 static std::string
format(
const bool &value);
274 static std::string
format(
const int &value);
281 static std::string
format(
const float &value);
288 static std::string
format(
const std::string &value);
295 static std::string
format(
const std::vector<std::string> &values);
302 static std::string
format(
const std::set<std::string> &values);
309 static std::vector<std::string>
splitCsvTopLevel(
const std::string& basicString);
Definition: ConfigParser.h:207
ConfigException(std::string msg)
Definition: ConfigParser.h:212
const char * what() const noexcept override
Definition: ConfigParser.h:214
Definition: ConfigParser.h:141
std::vector< std::string > asListOfStrings() const
Definition: ConfigParser.cpp:512
ConfigObjectValue atObject(const unsigned long &index)
Definition: ConfigParser.cpp:491
unsigned long size() const
Definition: ConfigParser.cpp:481
void add(const std::variant< ConfigSingleValue, ConfigObjectValue > &value)
Definition: ConfigParser.cpp:496
ConfigSingleValue atSingle(const unsigned long &index)
Definition: ConfigParser.cpp:486
bool operator!=(const ConfigListValue &other) const
Definition: ConfigParser.cpp:508
std::vector< std::map< std::string, std::variant< std::string, std::vector< std::string > > > > asListOfMapsOfStrings()
Definition: ConfigParser.cpp:537
std::set< std::string > asSetOfStrings() const
Definition: ConfigParser.cpp:524
bool operator==(const ConfigListValue &other) const
Definition: ConfigParser.cpp:500
Definition: ConfigParser.h:80
ConfigSingleValue atSingle(const std::string &index)
Definition: ConfigParser.cpp:422
std::map< std::string, std::variant< std::string, std::vector< std::string > > > asMapOfStringsOrListsOfStrings() const
Definition: ConfigParser.cpp:451
bool operator==(const ConfigObjectValue &other) const
Definition: ConfigParser.cpp:467
std::map< std::string, std::variant< ConfigSingleValue, std::vector< ConfigSingleValue > > > asMapOfSingleOrList()
Definition: ConfigParser.cpp:445
void set(const std::string &key, const std::variant< ConfigSingleValue, std::vector< ConfigSingleValue >> &value)
Definition: ConfigParser.cpp:438
bool operator!=(const ConfigObjectValue &other) const
Definition: ConfigParser.cpp:476
unsigned long size() const
Definition: ConfigParser.cpp:417
std::vector< ConfigSingleValue > atList(const std::string &index)
Definition: ConfigParser.cpp:433
Definition: ConfigParser.h:222
bool operator==(const ConfigParser &other) const
Definition: ConfigParser.cpp:399
ConfigObjectValue getObjectValue(const std::string &key)
Definition: ConfigParser.cpp:347
static std::vector< std::string > splitCsvTopLevel(const std::string &basicString)
Definition: ConfigParser.cpp:148
static std::string format(const bool &value)
Definition: ConfigParser.cpp:358
ConfigSingleValue getSingleValue(const std::string &key)
Definition: ConfigParser.cpp:317
ConfigListValue getListValue(const std::string &key)
Definition: ConfigParser.cpp:328
void operator=(const ConfigParser &other)
Definition: ConfigParser.cpp:409
ConfigParser(const std::string &input)
Definition: ConfigParser.cpp:228
Definition: ConfigParser.h:26
int getInt() const
Definition: ConfigParser.cpp:291
std::string getString() const
Definition: ConfigParser.cpp:275
float getFloat() const
Definition: ConfigParser.cpp:283
ConfigSingleValue()=default
bool getBool() const
Definition: ConfigParser.cpp:299
bool operator!=(const ConfigSingleValue &other) const
Definition: ConfigParser.cpp:310
bool operator==(const ConfigSingleValue &other) const
Definition: ConfigParser.cpp:306
Definition: ConfigParser.h:18
virtual ~ConfigValue()=default
Definition: ActiveAudio.h:11