diff options
Diffstat (limited to 'src/Common/ConfigManager.cpp')
-rw-r--r-- | src/Common/ConfigManager.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/Common/ConfigManager.cpp b/src/Common/ConfigManager.cpp index c119cf7..6727cc3 100644 --- a/src/Common/ConfigManager.cpp +++ b/src/Common/ConfigManager.cpp @@ -52,7 +52,10 @@ void ConfigManager::handleConfigEntry(const ConfigEntry &entry) { Logger::logf(Logger::WARNING, "Invalid config option '%s'.", entry[entry.getSize()-1].getKey().c_str()); } -bool ConfigManager::loadFile(const std::string &filename, bool finish) { +bool ConfigManager::loadFile(const std::string &filename) { + if(finished) + return false; + std::ifstream file(filename.c_str()); ConfigEntry entry; std::string line, input; @@ -112,13 +115,18 @@ bool ConfigManager::loadFile(const std::string &filename, bool finish) { // TODO Depth check - if(finish) { - for(std::set<Configurable*>::iterator c = configurables.begin(); c != configurables.end(); ++c) - (*c)->configFinished(); - } - return true; } +void ConfigManager::finish() { + if(finished) + return; + + for(std::set<Configurable*>::iterator c = configurables.begin(); c != configurables.end(); ++c) + (*c)->configFinished(); + + finished = true; +} + } } |