From 96b6f07a32cb02ae5d907bacd81f62fc25fdc278 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 19 Oct 2008 20:35:52 +0200 Subject: Neuen ConfigManager angefangen & alten Code daran angepasst --- src/Common/ConfigManager.h | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'src/Common/ConfigManager.h') diff --git a/src/Common/ConfigManager.h b/src/Common/ConfigManager.h index 8bb4c87..7fa781e 100644 --- a/src/Common/ConfigManager.h +++ b/src/Common/ConfigManager.h @@ -20,37 +20,41 @@ #ifndef MAD_COMMON_CONFIGMANAGER_H_ #define MAD_COMMON_CONFIGMANAGER_H_ +#include #include #include -#include namespace Mad { namespace Common { +class Configurable; + class ConfigManager { private: - static std::auto_ptr configManager; + static ConfigManager configManager; - protected: - ConfigManager() { - initBackends(); - } + std::set configurables; + bool finished; - static void setConfigManager(std::auto_ptr configManager0) { - configManager = configManager0; - } + ConfigManager() : finished(false) {} + + void handleConfigEntry(const std::vector&, const std::vector >&); - virtual bool parseLine(const std::vector §ion, const std::string &key, const std::string &value = std::string()) = 0; + public: + bool loadFile(const std::string &filename, bool finish = true); - bool loadFile(const std::string &filename); + void registerConfigurable(Configurable *c) { + configurables.insert(c); + } - void initBackends(); + void unregisterConfigurable(Configurable *c) { + configurables.erase(c); + } - public: virtual ~ConfigManager() {} static ConfigManager *getConfigManager() { - return configManager.get(); + return &configManager; } }; -- cgit v1.2.3