diff options
author | StormBytePP <stormbyte@gmail.com> | 2015-08-19 19:02:10 +0200 |
---|---|---|
committer | StormBytePP <stormbyte@gmail.com> | 2015-08-21 17:52:42 +0200 |
commit | 1d2aafd39bcb79a67357d198ce9b2345642fdd39 (patch) | |
tree | c32cf1c3717625c60da59c82ba5a4fca2530119a /src/server/shared/Configuration/Config.cpp | |
parent | 172293acee1607727ebd8070ab3e1390590d02a8 (diff) |
Core/Build: Merge common library and move database out of shared
Diffstat (limited to 'src/server/shared/Configuration/Config.cpp')
-rw-r--r-- | src/server/shared/Configuration/Config.cpp | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/server/shared/Configuration/Config.cpp b/src/server/shared/Configuration/Config.cpp deleted file mode 100644 index 1e1f8c7c3c6..00000000000 --- a/src/server/shared/Configuration/Config.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <algorithm> -#include <mutex> -#include <boost/property_tree/ptree.hpp> -#include <boost/property_tree/ini_parser.hpp> -#include "Config.h" -#include "Errors.h" - -using namespace boost::property_tree; - -bool ConfigMgr::LoadInitial(std::string const& file, std::string& error) -{ - std::lock_guard<std::mutex> lock(_configLock); - - _filename = file; - - try - { - ptree fullTree; - ini_parser::read_ini(file, fullTree); - - if (fullTree.empty()) - { - error = "empty file (" + file + ")"; - return false; - } - - // Since we're using only one section per config file, we skip the section and have direct property access - _config = fullTree.begin()->second; - } - catch (ini_parser::ini_parser_error const& e) - { - if (e.line() == 0) - error = e.message() + " (" + e.filename() + ")"; - else - error = e.message() + " (" + e.filename() + ":" + std::to_string(e.line()) + ")"; - return false; - } - - return true; -} - -bool ConfigMgr::Reload(std::string& error) -{ - return LoadInitial(_filename, error); -} - -std::string ConfigMgr::GetStringDefault(std::string const& name, const std::string& def) -{ - std::string value = _config.get<std::string>(ptree::path_type(name, '/'), def); - - value.erase(std::remove(value.begin(), value.end(), '"'), value.end()); - - return value; -} - -bool ConfigMgr::GetBoolDefault(std::string const& name, bool def) -{ - try - { - std::string val = _config.get<std::string>(ptree::path_type(name, '/')); - val.erase(std::remove(val.begin(), val.end(), '"'), val.end()); - return (val == "true" || val == "TRUE" || val == "yes" || val == "YES" || val == "1"); - } - catch (std::exception const& /*ex*/) - { - return def; - } -} - -int ConfigMgr::GetIntDefault(std::string const& name, int def) -{ - return _config.get<int>(ptree::path_type(name, '/'), def); -} - -float ConfigMgr::GetFloatDefault(std::string const& name, float def) -{ - return _config.get<float>(ptree::path_type(name, '/'), def); -} - -std::string const& ConfigMgr::GetFilename() -{ - std::lock_guard<std::mutex> lock(_configLock); - return _filename; -} - -std::list<std::string> ConfigMgr::GetKeysByString(std::string const& name) -{ - std::lock_guard<std::mutex> lock(_configLock); - - std::list<std::string> keys; - - for (const ptree::value_type& child : _config) - if (child.first.compare(0, name.length(), name) == 0) - keys.push_back(child.first); - - return keys; -} |