#include "LOstream.h"
-// I don't really like this, but too please doc++...(Lgb)
-using std::ostream;
-
#ifdef TEST_DEBUGSTREAM
#include <string>
struct Debug {
INFO
Always
- If you want to have debug output from time critical code you should
+ If you want to have debug output from time critical code you should
use this construct:
if (debug.debugging(Debug::INFO)) {
- debug << "...debug output...\n";
+ debug << "...debug output...\n";
}
-
+
To give debug info even if no debug (NONE) is requested:
debug << "... always output ...\n";
debug[Debug::type(Debug::INFO | Debug::CRIT)] << "...info/crit...\n";
*/
-class DebugStream : public ostream
+class DebugStream : public std::ostream
{
-// This workaround is needed only for gcc 2.8.1 (and possibly egcs
-// 1.0.x), which generates a compiler error when subclassing from
-// std::. (JMarc)
public:
/// Constructor, sets the debug level to t.
explicit DebugStream(Debug::type t = Debug::NONE);
-
+
/// Constructor, sets the log file to f, and the debug level to t.
explicit
DebugStream(char const * f, Debug::type t = Debug::NONE);
/// Sets the debugstreams' logfile to f.
void logFile(char const * f);
-
+
/// Returns true if t is part of the current debug level.
bool debugging(Debug::type t = Debug::ANY) const
{
return false;
}
-
+
/** Returns the no-op stream if t is not part of the
current debug level otherwise the real debug stream
is used.
return nullstream;
}
-
+
/** This is an operator to give a more convenient use:
dbgstream[Debug::INFO] << "Info!\n";
*/
};
#endif
-
-