diff options
author | Vincent_Michael <Vincent_Michael@gmx.de> | 2013-12-20 17:39:13 +0100 |
---|---|---|
committer | Vincent_Michael <Vincent_Michael@gmx.de> | 2013-12-20 17:39:13 +0100 |
commit | 8658b5338c905c79daf50cb56dbe739f82d25acc (patch) | |
tree | ebb2c18b6d9618ac9fef1d2c5f8b335f34d3702c /src/server/shared/Configuration/Config.cpp | |
parent | 59fd1a164fc38ddd282707b3221dcd64af284166 (diff) | |
parent | 9ac96fd702d8ed23491d13eda2238312120cf52f (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into mmaps_rw
Conflicts:
src/server/collision/Management/MMapManager.cpp
src/server/game/Maps/Map.cpp
src/server/game/Movement/PathGenerator.cpp
Diffstat (limited to 'src/server/shared/Configuration/Config.cpp')
-rw-r--r-- | src/server/shared/Configuration/Config.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/server/shared/Configuration/Config.cpp b/src/server/shared/Configuration/Config.cpp index 47d59a57100..055c33b40ee 100644 --- a/src/server/shared/Configuration/Config.cpp +++ b/src/server/shared/Configuration/Config.cpp @@ -117,3 +117,35 @@ std::string const& ConfigMgr::GetFilename() GuardType guard(_configLock); return _filename; } + +std::list<std::string> ConfigMgr::GetKeysByString(std::string const& name) +{ + GuardType guard(_configLock); + + std::list<std::string> keys; + if (_config.get() == 0) + return keys; + + ACE_TString section_name; + ACE_Configuration_Section_Key section_key; + const ACE_Configuration_Section_Key &root_key = _config->root_section(); + + int i = 0; + while (_config->enumerate_sections(root_key, i++, section_name) == 0) + { + _config->open_section(root_key, section_name.c_str(), 0, section_key); + + ACE_TString key_name; + ACE_Configuration::VALUETYPE type; + int j = 0; + while (_config->enumerate_values(section_key, j++, key_name, type) == 0) + { + std::string temp = key_name.c_str(); + + if (!temp.find(name)) + keys.push_back(temp); + } + } + + return keys; +} |