Implemented basic scaling in BasicViewport.
[aesalon.git] / include / util / MessageSystem.h
blob7078cf526a0d6823d33ded38098167f14fd48d05
1 /** Aesalon, a tool to visualize program behaviour in real time.
2 Copyright (C) 2009-2011, Aesalon development team.
4 Aesalon is distributed under the terms of the GNU GPLv3. See
5 the included file LICENSE for more information.
7 @file include/util/MessageSystem.h
8 */
10 #ifndef AesalonUtil_MessageSystem_H
11 #define AesalonUtil_MessageSystem_H
13 #include <string>
15 #include "util/StreamAsString.h"
17 namespace Util {
19 class MessageSystem {
20 public:
21 enum MessageLevel {
22 Debug,
23 Log,
24 Warning,
25 Fatal
27 public:
28 static void writeMessage(MessageLevel level, const std::string &message);
31 } // namespace Util
33 /* Usage something like:
34 Message(Debug, "The foo has passed bar #" << fooBar << " at baz #" << baz);
37 #define Message(level, message) \
38 Util::MessageSystem::writeMessage(level, Util::StreamAsString() << message)
40 #define Debug Util::MessageSystem::Debug
41 #define Log Util::MessageSystem::Log
42 #define Warning Util::MessageSystem::Warning
43 #define Fatal Util::MessageSystem::Fatal
45 #define LevelString(level) \
46 (level == Debug?("DEBUG"):( \
47 level == Log?("LOG"):( \
48 level == Warning?("WARN"):"FATAL")))
50 #endif