diff options
author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-07-15 18:04:04 +0200 |
---|---|---|
committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-07-15 18:04:04 +0200 |
commit | 56bd42dcf1ffdf0bf8099a1c87dc7a52ca9663ff (patch) | |
tree | d951e7af2b120fe1ba58373aa528fb1a5f4b5263 /src/server/shared/Configuration/Config.h | |
parent | 7104e3c70f9849dfbc481084a8bd3c20d99b3036 (diff) | |
parent | 779a59e7e218e340ac5cefd3297ea970d804239d (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/World/World.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
Diffstat (limited to 'src/server/shared/Configuration/Config.h')
-rw-r--r-- | src/server/shared/Configuration/Config.h | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/src/server/shared/Configuration/Config.h b/src/server/shared/Configuration/Config.h index 778c25f2033..d633e37f0c4 100644 --- a/src/server/shared/Configuration/Config.h +++ b/src/server/shared/Configuration/Config.h @@ -20,17 +20,58 @@ #define CONFIG_H #include <string> +#include <map> +#include <ace/Singleton.h> +#include <ace/Configuration_Import_Export.h> +#include <ace/Thread_Mutex.h> +#include <AutoPtr.h> -namespace ConfigMgr +typedef Trinity::AutoPtr<ACE_Configuration_Heap, ACE_Null_Mutex> Config; + +class ConfigMgr { - bool Load(const char *file = NULL); + friend class ACE_Singleton<ConfigMgr, ACE_Null_Mutex>; + friend class ConfigLoader; + + ConfigMgr() { } + ~ConfigMgr() { } + +public: + /// Method used only for loading main configuration files (authserver.conf and worldserver.conf) + bool LoadInitial(char const* file); + + /** + * This method loads additional configuration files + * It is recommended to use this method in WorldScript::OnConfigLoad hooks + * + * @return true if loading was successful + */ + bool LoadMore(char const* file); + + bool Reload(); std::string GetStringDefault(const char* name, const std::string& def); bool GetBoolDefault(const char* name, bool def); int GetIntDefault(const char* name, int def); float GetFloatDefault(const char* name, float def); - const std::string & GetFilename(); -} + std::string const& GetFilename(); + +private: + bool GetValueHelper(const char* name, ACE_TString &result); + bool LoadData(char const* file); + + typedef ACE_Thread_Mutex LockType; + typedef ACE_Guard<LockType> GuardType; + + std::string _filename; + Config _config; + LockType _configLock; + + ConfigMgr(ConfigMgr const&); + ConfigMgr& operator=(ConfigMgr const&); +}; + +#define sConfigMgr ACE_Singleton<ConfigMgr, ACE_Null_Mutex>::instance() #endif |