1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/////////////////////////////////////////////////////////////
// //
// Copyright (c) 2003-2017 by The University of Queensland //
// Centre for Geoscience Computing //
// http://earth.uq.edu.au/centre-geoscience-computing //
// //
// Primary Business: Brisbane, Queensland, Australia //
// Licensed under the Open Software License version 3.0 //
// http://www.apache.org/licenses/LICENSE-2.0 //
// //
/////////////////////////////////////////////////////////////
#ifndef _CONSOLE_H_
#define _CONSOLE_H_
//--STL includes--
#include <string>
#include <sstream>
using std::string;
using std::stringstream;
/*!
\class Console
\brief Handle message ouput on the console
*/
class Console
{
protected:
int m_verb ; //!< current verbose level
bool m_mute; //!< flag to mute console (loats output) or quiet console
bool m_buffered;
bool m_initialized; //!< set if filename and so on are set
bool m_has_new_data;
unsigned int m_bufflen; //!< length of internal buffer
stringstream m_buffer; //!< buffer for output & process
string m_filename; //!< Output stream
double m_time_offs; //!< time offset
void flush();
public:
Console();
virtual ~Console() ;
void Initialize();
void Initialize(const string&);
void SetBuffered(unsigned int); //!< set buffer length and buffered mode on/off
void SetFilename(const string&);
void SetVerbose(int vl=7) ; //!< set verbose level - defaults to all
inline int GetVerbose() { return m_verb; } ;
Console & Message() ; //!< set verbose level of next message to "msg"
Console & Error() ; //!< set verbose level of next message to "err"
Console & Warning() ; //!< set verbose level of next message to "wrn"
Console & Critical() ; //!< set verbose level of next message to "crt"
Console & Info() ; //!< set verbose level of next message to "inf"
Console & Debug() ; //!< set verbose level of next message to "dbg"
Console & XDebug() ; //!< set verbose level of next message to "xdg"
template <class T> Console & operator<<(T);
} ;
#include "console.hpp"
extern Console console;
#endif // _CONSOLE_H_
|