From 0b0d883a00751c946fab4c897bab01859c598a88 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 16 Jun 2009 14:07:06 +0200 Subject: Logger werden jetzt durch shared_ptr gespeichert --- src/modules/FileLogger/FileLogger.cpp | 6 +++--- src/modules/FileLogger/FileLogger.h | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/modules') 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::loggers; +std::set > 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 logger(new FileLogger(entry[0][1])); loggers.insert(logger); - Core::LogManager::get()->registerLogger(static_cast(logger)); + Core::LogManager::get()->registerLogger(boost::static_pointer_cast(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 loggers; + static std::set > 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::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) { - delete *logger; + for(std::set >::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) { + Core::LogManager::get()->unregisterLogger(boost::static_pointer_cast(*logger)); } loggers.clear(); -- cgit v1.2.3