71 lines
2.4 KiB
C++
71 lines
2.4 KiB
C++
#ifndef ARE_INCLUDE_UTILS_CONFIG_H
|
|
#define ARE_INCLUDE_UTILS_CONFIG_H
|
|
|
|
#include <string>
|
|
#include <unordered_map>
|
|
|
|
namespace are {
|
|
|
|
/// @brief Configuration manager for loading engine settings
|
|
/// @note This module should be implemented by the user
|
|
class Config {
|
|
public:
|
|
/// @brief Load configuration from file
|
|
/// @param path Configuration file path
|
|
/// @return True if loading succeeded
|
|
static bool load(const std::string& path);
|
|
|
|
/// @brief Save configuration to file
|
|
/// @param path Configuration file path
|
|
/// @return True if saving succeeded
|
|
static bool save(const std::string& path);
|
|
|
|
/// @brief Get string value
|
|
/// @param key Configuration key
|
|
/// @param default_value Default value if key not found
|
|
/// @return Configuration value
|
|
static std::string get_string(const std::string& key, const std::string& default_value = "");
|
|
|
|
/// @brief Get integer value
|
|
/// @param key Configuration key
|
|
/// @param default_value Default value if key not found
|
|
/// @return Configuration value
|
|
static int get_int(const std::string& key, int default_value = 0);
|
|
|
|
/// @brief Get float value
|
|
/// @param key Configuration key
|
|
/// @param default_value Default value if key not found
|
|
/// @return Configuration value
|
|
static float get_float(const std::string& key, float default_value = 0.0f);
|
|
|
|
/// @brief Get boolean value
|
|
/// @param key Configuration key
|
|
/// @param default_value Default value if key not found
|
|
/// @return Configuration value
|
|
static bool get_bool(const std::string& key, bool default_value = false);
|
|
|
|
/// @brief Set string value
|
|
/// @param key Configuration key
|
|
/// @param value Configuration value
|
|
static void set_string(const std::string& key, const std::string& value);
|
|
|
|
/// @brief Set integer value
|
|
/// @param key Configuration key
|
|
/// @param value Configuration value
|
|
static void set_int(const std::string& key, int value);
|
|
|
|
/// @brief Set float value
|
|
/// @param key Configuration key
|
|
/// @param value Configuration value
|
|
static void set_float(const std::string& key, float value);
|
|
|
|
/// @brief Set boolean value
|
|
/// @param key Configuration key
|
|
/// @param value Configuration value
|
|
static void set_bool(const std::string& key, bool value);
|
|
};
|
|
|
|
} // namespace are
|
|
|
|
#endif // ARE_INCLUDE_UTILS_CONFIG_H
|