/* common/consoleinterface.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_COMMON_CONSOLEINTERFACE_H__ #define __INCLUDED_COMMON_CONSOLEINTERFACE_H__ // project headers #include "common/common.h" // C++ headers #include /// global define to send a message to the system console #define con_print common::ConsoleInterface::instance()->messagestream() /// global define to send a warning message to the system console #define con_warn common::ConsoleInterface::instance()->warningstream() #ifdef HAVE_DEBUG_MESSAGES /// global define to send a debug message to the system console #define con_debug common::ConsoleInterface::instance()->debugstream() #else #define con_debug if (0) *(std::ostream*)(0) #endif namespace common { /// common interface for the client and server Console classes class ConsoleInterface { public: /// default constructor ConsoleInterface(); /// default destructor virtual ~ConsoleInterface(); /// stream to send normal messages too virtual std::ostream & messagestream() = 0; /// stream to send warning messages too virtual std::ostream & warningstream() = 0; /// stream to send debug messages too virtual std::ostream & debugstream() = 0; /// a pointer to the current console instance static ConsoleInterface *instance(); private: /// console singleton static ConsoleInterface *consoleinterface_instance; }; } // namespace common #endif // __INCLUDED_COMMON_CONSOLEINTERFACE_H__