diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-06-16 14:07:06 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-06-16 14:07:06 +0200 |
commit | 0b0d883a00751c946fab4c897bab01859c598a88 (patch) | |
tree | e725eed6c843bf42d88ca46751f4c03bd21fed3f /src/modules | |
parent | 766c56a693e8b1bd4293459bb256abdc0515a0b5 (diff) | |
download | mad-0b0d883a00751c946fab4c897bab01859c598a88.tar mad-0b0d883a00751c946fab4c897bab01859c598a88.zip |
Logger werden jetzt durch shared_ptr gespeichert
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/FileLogger/FileLogger.cpp | 6 | ||||
-rw-r--r-- | src/modules/FileLogger/FileLogger.h | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/modules/FileLogger/FileLogger.cpp b/src/modules/FileLogger/FileLogger.cpp index a78ab36..bdae536 100644 --- a/src/modules/FileLogger/FileLogger.cpp +++ b/src/modules/FileLogger/FileLogger.cpp @@ -26,7 +26,7 @@ namespace Mad { namespace Modules { FileLogger::ConfigHelper FileLogger::configHelper; -std::set<FileLogger*> FileLogger::loggers; +std::set<boost::shared_ptr<FileLogger> > FileLogger::loggers; bool FileLogger::ConfigHelper::handleConfigEntry(const Core::ConfigEntry &entry, bool handled) { @@ -37,10 +37,10 @@ bool FileLogger::ConfigHelper::handleConfigEntry(const Core::ConfigEntry &entry, if(entry[0][0].matches("File")) { if(entry[1].empty()) { if(!entry[0][1].empty()) { - FileLogger *logger = new FileLogger(entry[0][1]); + boost::shared_ptr<FileLogger> logger(new FileLogger(entry[0][1])); loggers.insert(logger); - Core::LogManager::get()->registerLogger(static_cast<Logger*>(logger)); + Core::LogManager::get()->registerLogger(boost::static_pointer_cast<Logger>(logger)); } else { Logger::logf(Logger::WARNING, "FileLogger: no filename given."); diff --git a/src/modules/FileLogger/FileLogger.h b/src/modules/FileLogger/FileLogger.h index 04e2126..9b0f8e2 100644 --- a/src/modules/FileLogger/FileLogger.h +++ b/src/modules/FileLogger/FileLogger.h @@ -29,7 +29,7 @@ namespace Mad { namespace Modules { -class FileLogger : private Core::Logger, private Core::RemoteLogger { +class FileLogger : public Core::Logger, public Core::RemoteLogger { private: class ConfigHelper : public Core::Configurable { protected: @@ -40,7 +40,7 @@ class FileLogger : private Core::Logger, private Core::RemoteLogger { }; static ConfigHelper configHelper; - static std::set<FileLogger*> loggers; + static std::set<boost::shared_ptr<FileLogger> > loggers; std::ofstream file; @@ -63,8 +63,8 @@ class FileLogger : private Core::Logger, private Core::RemoteLogger { static void unregisterConfigHelper() { Core::ConfigManager::get()->unregisterConfigurable(&configHelper); - for(std::set<FileLogger*>::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) { - delete *logger; + for(std::set<boost::shared_ptr<FileLogger> >::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) { + Core::LogManager::get()->unregisterLogger(boost::static_pointer_cast<Logger>(*logger)); } loggers.clear(); |