diff options
Diffstat (limited to 'src/Core/Application.h')
-rw-r--r-- | src/Core/Application.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/Core/Application.h b/src/Core/Application.h new file mode 100644 index 0000000..bfc23db --- /dev/null +++ b/src/Core/Application.h @@ -0,0 +1,94 @@ +/* + * Application.h + * + * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de> + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#ifndef MAD_CORE_APPLICATION_H_ +#define MAD_CORE_APPLICATION_H_ + +#include "LoggerBase.h" + +#include <cstdarg> +#include <string> + +#include <boost/asio/io_service.hpp> +#include <boost/noncopyable.hpp> + +namespace Mad { +namespace Core { + +class ConfigManager; +class LogManager; +class ThreadManager; + +class Application : private boost::noncopyable { + private: + boost::asio::io_service ioService; + + ConfigManager *configManager; + LogManager *logManager; + ThreadManager *threadManager; + + void logfv(LoggerBase::MessageCategory category, LoggerBase::MessageLevel level, const char *format, va_list ap); + + protected: + Application(); + virtual ~Application(); + + public: + boost::asio::io_service& getIOService() { + return ioService; + } + + ConfigManager* getConfigManager() const { + return configManager; + } + + LogManager* getLogManager() const { + return logManager; + } + + ThreadManager* getThreadManager() const { + return threadManager; + } + + + void log(LoggerBase::MessageCategory category, LoggerBase::MessageLevel level, const std::string &message); + + void log(LoggerBase::MessageCategory category, const std::string &message) { + log(category, LoggerBase::DEFAULT, message); + } + + void log(LoggerBase::MessageLevel level, const std::string &message) { + log(LoggerBase::GENERAL, level, message); + } + + void log(const std::string &message) { + log(LoggerBase::GENERAL, LoggerBase::DEFAULT, message); + } + + + void logf(LoggerBase::MessageCategory category, LoggerBase::MessageLevel level, const char *format, ...); + void logf(LoggerBase::MessageCategory category, const char *format, ...); + void logf(LoggerBase::MessageLevel level, const char *format, ...); + void logf(const char *format, ...); +}; + +} +} + +#endif /* MAD_CORE_APPLICATION_H_ */ |