diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-01 19:34:47 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-01 19:34:47 +0000 |
commit | 6c8446cddb37df732fc9e5fc21f98e31968ce634 (patch) | |
tree | 25515ae78969e2f0ef216a5cbef8a650b217e8f8 /src/common/consoleinterface.h | |
parent | f794b9ee52293cefd6ac73fdf0d2a01c5388f057 (diff) |
interface cleanup
Diffstat (limited to 'src/common/consoleinterface.h')
-rw-r--r-- | src/common/consoleinterface.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/common/consoleinterface.h b/src/common/consoleinterface.h new file mode 100644 index 0000000..ec77e1d --- /dev/null +++ b/src/common/consoleinterface.h @@ -0,0 +1,59 @@ +/* + 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 <iostream> + +/// 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__ + |