Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
Config.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef CONFIG_H
7#define CONFIG_H
8
10#include <list>
11#include <map>
12#include <mutex>
13#include <string>
14
15typedef std::map<std::string, std::string> ConfigSection;
16typedef std::map<std::string, ConfigSection> Config;
17
19{
20 friend class Skyfire::Singleton<ConfigMgr, Skyfire::NullMutex>;
21 friend class ConfigLoader;
22
23 ConfigMgr() : _configLoaded(false) { }
25
26public:
28 bool LoadInitial(char const* file);
29
36 bool LoadMore(char const* file);
37
38 bool Reload();
39
40 std::string GetStringDefault(const char* name, const std::string& def);
41 bool GetBoolDefault(const char* name, bool def);
42 int GetIntDefault(const char* name, int def);
43 float GetFloatDefault(const char* name, float def);
44
45 std::string const& GetFilename();
46 std::list<std::string> GetKeysByString(std::string const& name);
47
48private:
49 bool GetValueHelper(const char* name, std::string& result);
50 bool LoadData(char const* file);
51
52 typedef std::mutex LockType;
53 typedef std::lock_guard<std::mutex> GuardType;
54
55 std::string _filename;
59
62};
63
64#define sConfigMgr Skyfire::Singleton<ConfigMgr, Skyfire::NullMutex>::instance()
65
66#endif
std::map< std::string, std::string > ConfigSection
Definition Config.h:15
std::map< std::string, ConfigSection > Config
Definition Config.h:16
std::string _filename
Definition Config.h:55
std::string const & GetFilename()
Definition Config.cpp:189
friend class ConfigLoader
Definition Config.h:21
bool LoadMore(char const *file)
Definition Config.cpp:108
bool LoadData(char const *file)
Definition Config.cpp:123
bool _configLoaded
Definition Config.h:57
int GetIntDefault(const char *name, int def)
Definition Config.cpp:177
Config _config
Definition Config.h:56
bool Reload()
Definition Config.cpp:118
std::list< std::string > GetKeysByString(std::string const &name)
Definition Config.cpp:195
~ConfigMgr()
Definition Config.h:24
std::lock_guard< std::mutex > GuardType
Definition Config.h:53
LockType _configLock
Definition Config.h:58
std::string GetStringDefault(const char *name, const std::string &def)
Definition Config.cpp:160
ConfigMgr()
Definition Config.h:23
ConfigMgr(ConfigMgr const &)
std::mutex LockType
Definition Config.h:52
ConfigMgr & operator=(ConfigMgr const &)
bool LoadInitial(char const *file)
Method used only for loading main configuration files (authserver.conf and worldserver....
Definition Config.cpp:88
float GetFloatDefault(const char *name, float def)
Definition Config.cpp:183
bool GetBoolDefault(const char *name, bool def)
Definition Config.cpp:166
bool GetValueHelper(const char *name, std::string &result)
Definition Config.cpp:68