From 766c56a693e8b1bd4293459bb256abdc0515a0b5 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 9 Jun 2009 19:01:02 +0200 Subject: Teile der Namespaces Common und Net in den neuen Namespace Core verschoben --- src/Common/LogManager.h | 149 ------------------------------------------------ 1 file changed, 149 deletions(-) delete mode 100644 src/Common/LogManager.h (limited to 'src/Common/LogManager.h') diff --git a/src/Common/LogManager.h b/src/Common/LogManager.h deleted file mode 100644 index 98bb6f7..0000000 --- a/src/Common/LogManager.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * LogManager.h - * - * Copyright (C) 2008 Matthias Schiffer - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#ifndef MAD_COMMON_LOGMANAGER_H_ -#define MAD_COMMON_LOGMANAGER_H_ - -#include - -#include "Configurable.h" -#include "Logger.h" -#include "RemoteLogger.h" - -#include -#include - -#include -#include - -namespace Mad { - -namespace Net { -class ThreadManager; -} - -namespace Common { - -class LogManager : public Configurable { - private: - friend class Net::ThreadManager; - - typedef LoggerBase::MessageCategory MessageCategory; - typedef LoggerBase::MessageLevel MessageLevel; - - struct Message { - MessageCategory category; - MessageLevel level; - time_t timestamp; - std::string message; - }; - - struct RemoteMessage { - MessageCategory category; - MessageLevel level; - time_t timestamp; - std::string message; - std::string source; - }; - - class ConsoleLogger : public Logger, public RemoteLogger { - private: - // For long messages, writing to cerr is not atomic - // -> lock cerr to prevent mixing messages up - boost::mutex cerrLock; - - protected: - virtual void logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level, time_t timestamp _UNUSED_PARAMETER_, const std::string &message); - virtual void logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel, time_t timestamp _UNUSED_PARAMETER_, const std::string &message, const std::string &messageSource); - - public: - ConsoleLogger() {} - - void logMessageDirect(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level _UNUSED_PARAMETER_, time_t timestamp _UNUSED_PARAMETER_, const std::string &message); - }; - - - static LogManager logManager; - - ConsoleLogger consoleLogger; - - std::set loggers; - std::set remoteLoggers; - bool configured, running; - - boost::mutex queueLock; - boost::condition_variable queueCond; - - boost::mutex loggerLock; - boost::mutex remoteLoggerLock; - - std::queue messageQueue; - std::queue remoteMessageQueue; - - void loggerThread(); - void stopLoggerThread() { - queueLock.lock(); - running = false; - queueLock.unlock(); - queueCond.notify_one(); - } - - LogManager() : configured(false), running(false) {} - - protected: - virtual bool handleConfigEntry(const ConfigEntry &entry, bool handled); - virtual void configFinished(); - - public: - void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message); - void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message, const std::string &source); - - void registerLogger(Logger *logger) { - loggerLock.lock(); - loggers.insert(logger); - loggerLock.unlock(); - } - - void unregisterLogger(Logger *logger) { - loggerLock.lock(); - loggers.erase(logger); - loggerLock.unlock(); - } - - void registerLogger(RemoteLogger *logger) { - remoteLoggerLock.lock(); - remoteLoggers.insert(logger); - remoteLoggerLock.unlock(); - } - - void unregisterLogger(RemoteLogger *logger) { - remoteLoggerLock.lock(); - remoteLoggers.erase(logger); - remoteLoggerLock.unlock(); - } - - static LogManager *get() { - return &logManager; - } -}; - -} -} - -#endif /* MAD_COMMON_LOGMANAGER_H_ */ -- cgit v1.2.3