mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-01 23:35:41 +00:00
35 lines
995 B
C++
35 lines
995 B
C++
#pragma once
|
|
|
|
#include "Common.h"
|
|
|
|
#include <atomic>
|
|
#include <filesystem>
|
|
|
|
#define TOML11_PRESERVE_COMMENTS_BY_DEFAULT
|
|
#include <toml.hpp> // header-only version of TOML++
|
|
|
|
namespace fs = std::filesystem;
|
|
|
|
class TConfig {
|
|
public:
|
|
explicit TConfig(const std::string& ConfigFileName);
|
|
|
|
[[nodiscard]] bool Failed() const { return mFailed; }
|
|
|
|
void FlushToFile();
|
|
|
|
private:
|
|
void CreateConfigFile();
|
|
void ParseFromFile(std::string_view name);
|
|
void PrintDebug();
|
|
void TryReadValue(toml::value& Table, const std::string& Category, const std::string_view& Key, std::string& OutValue);
|
|
void TryReadValue(toml::value& Table, const std::string& Category, const std::string_view& Key, bool& OutValue);
|
|
void TryReadValue(toml::value& Table, const std::string& Category, const std::string_view& Key, int& OutValue);
|
|
|
|
void ParseOldFormat();
|
|
std::string TagsAsPrettyArray() const;
|
|
bool IsDefault();
|
|
bool mFailed { false };
|
|
std::string mConfigFileName;
|
|
};
|