/* common/console.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CONSOLE_H__ #define __INCLUDED_CONSOLE_H__ // C++ headers #include /// global define to send a message to the system console #define conmesg common::Console::instance->message() /// global define to send a warning message to the system console #define conwarn common::Console::instance->warning() #ifdef DEBUG /// global define to send a debug message to the system console #define condebug common::Console::instance->debug() #else #define condebug if (0) *(std::ostream*)(0) #endif // DEBUG namespace common { /// Interface for a console object that writes messages on the screen class Console { public: /// stream to send normal messages too virtual std::ostream & message() = 0; /// stream to send warning messages too virtual std::ostream & warning() = 0; /// stream to send debug messages too virtual std::ostream & debug() = 0 ; static Console *instance; }; // class Console } // namespace common #endif // __INCLUDED_CONSOLE_H__