Switchboard SDK
Loading...
Searching...
No Matches
Config.hpp
1//
2// Config.hpp
3// SwitchboardSDK
4//
5// Created by Balazs Kiss on 2025. 01. 21..
6//
7
8#pragma once
9
10#include <any>
11#include <map>
12#include <string>
13#include <optional>
14
15namespace switchboard {
16
20class Config {
21public:
27 Config(const std::map<std::string, std::any>& config = {});
28
33 Config(const std::string& jsonString);
34
40 [[nodiscard]]
41 std::map<std::string, std::any> getValue() const;
42
50 [[nodiscard]] bool hasKey(const std::string& key) const;
51
59 [[nodiscard]] std::any getAny(const std::string& key) const;
60
69 template <typename T>
70 [[nodiscard]] T get(const std::string& key) const;
71
78 void set(const std::string& key, const std::any& value);
79
88 template <typename T>
89 static T convert(const std::any& value);
90
101 template <typename T>
102 static T get(const std::map<std::string, std::any>& config, const std::string& key, std::optional<T> defaultValue = std::nullopt);
103
113 static std::optional<std::string> findString(const std::map<std::string, std::any>& config, const std::string& preferredKey);
114
122 static std::map<std::string, std::any> jsonToMap(const std::string& jsonString);
123
131 static std::string mapToJson(const std::map<std::string, std::any>& config);
132
133private:
134 std::map<std::string, std::any> config;
135};
136
137}
std::any getAny(const std::string &key) const
Config(const std::map< std::string, std::any > &config={})
static std::optional< std::string > findString(const std::map< std::string, std::any > &config, const std::string &preferredKey)
Finds a string in the configuration map.
void set(const std::string &key, const std::any &value)
Config(const std::string &jsonString)
static std::string mapToJson(const std::map< std::string, std::any > &config)
std::map< std::string, std::any > getValue() const
static T get(const std::map< std::string, std::any > &config, const std::string &key, std::optional< T > defaultValue=std::nullopt)
static std::map< std::string, std::any > jsonToMap(const std::string &jsonString)
T get(const std::string &key) const
static T convert(const std::any &value)
bool hasKey(const std::string &key) const