#ifndef maximus_utils_inc_LoggerStream_h #define maximus_utils_inc_LoggerStream_h /* Cesar project {{{ * * Copyright (C) 2008 Spidcom * * <<>> * * }}} */ #include class LoggerStream { public: /** * Default constructor, black hole logger. */ LoggerStream (void) : mOs (0) { } /** * Constructor with an output stream, log to this stream. */ explicit LoggerStream (std::ostream &os) : mOs (&os) { } /** * Output operators. */ template const LoggerStream & operator<< (const T &rhs) const { if (mOs) *mOs << rhs; return *this; } /** * Output operators for iomanips. */ const LoggerStream & operator<< (std::ostream & (*rhs) (std::ostream&)) const { if (mOs) *mOs << rhs; return *this; } /** * Output operators for iomanips. */ const LoggerStream & operator<< (std::ios & (*rhs) (std::ios&)) const { if (mOs) *mOs << rhs; return *this; } private: std::ostream *mOs; }; #endif /* maximus_utils_inc_LoggerStream_h */