ESyS-Particle  2.3
console.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef _CONSOLE_H_
14 #define _CONSOLE_H_
15 
16 //--project includes--
17 #include "Foundation/Matrix3.h"
18 #include "Foundation/vec3.h"
19 
20 //--STL includes--
21 #include <string>
22 #include <sstream>
23 #include <fstream>
24 
25 using std::string;
26 using std::ostringstream;
27 
28 class CCounter;
29 class CCounterList;
30 
39 class BasicCon
40 {
41 public:
43 
44 protected:
45  static int VLevel ;
46  static bool mute,quiet ;
47  static bool timing;
48 
49  char *CurBuffer ;
50  ostream *os ;
51 
52  virtual void process(ostringstream *str_os) ;
53  virtual void show(char *level,bool h) ;
54 
55 public:
56  BasicCon();
57  BasicCon(ostream *Ios);
58  virtual ~BasicCon() ;
59 
60  inline void SetQuiet(bool Q) { quiet = Q ; };
61  inline void SetTiming(bool T) { timing = T ; };
62  static void SetVerbose(int vl=all) ;
63  inline static int GetVerbose() { return VLevel; } ;
64 
65  virtual void flush() ;
66 
67  virtual void SetOStream(ostream *Ios);
68 
69  BasicCon & Message(bool h=true) ;
70  BasicCon & Error(bool h=true) ;
71  BasicCon & Warning(bool h=true) ;
72  BasicCon & Critical(bool h=true) ;
73  BasicCon & Info(bool h=true) ;
74  BasicCon & Debug(bool h=true) ;
75  BasicCon & XDebug(bool h=true) ;
76  BasicCon & Timing(bool h=true) ;
77 
78  BasicCon & operator<<(const char* s);
79  BasicCon & operator<<(char s);
80  BasicCon & operator<<(short s) ;
81  BasicCon & operator<<(int s) ;
82  BasicCon & operator<<(long s) ;
83  BasicCon & operator<<(float s) ;
84  BasicCon & operator<<(double s) ;
85  BasicCon & operator<<(unsigned char s) ;
86  BasicCon & operator<<(unsigned short s);
87  BasicCon & operator<<(unsigned int s);
88  BasicCon & operator<<(unsigned long s);
89  BasicCon & operator<<(void* s) ;
91  BasicCon & operator<<(const Matrix3&);
94  BasicCon & operator<<(const string&);
95 } ;
96 
102 protected:
104  virtual void UpdateCon() = 0 ;
105 public:
106  virtual ~ConsoleWindow() {}
107  static bool immediate ;
108  static void Update() ;
109  static bool IsOpen() { return Window!=NULL ; } ;
110 } ;
111 
116 class Con : public BasicCon {
117 private:
118  int CurCol ;
119  char Buffer[4096] ;
120 protected:
121  virtual void process(ostringstream *str_os) ;
122  Con();
123 
124 public:
125  Con(ostream *Ios);
126  virtual ~Con() ;
127  virtual char *GetLast(char *buff) ;
128 } ;
129 
134 class FCon : public Con
135 {
136  private:
137  std::ofstream m_debugfile;
138 
139  public:
140  FCon();
141  virtual ~FCon() ;
142 };
143 
144 
145 
146 #ifdef _ENABLE_DEBUG_FILE
147 extern FCon console ;
148 #else
149 extern Con console ;
150 #endif // _ENABLE_DEBUG_FILE
151 extern BasicCon tconsole ;
152 
153 
154 #endif
FCon()
Definition: console.cpp:409
BasicCon()
Definition: console.cpp:45
Definition: console.h:42
ostream * os
Output stream (cout usually)
Definition: console.h:50
Console with history, and handle message output on a console window.
Definition: console.h:101
char Buffer[4096]
Definition: console.h:119
Definition: vec3.h:46
Definition: console.h:42
int CurCol
Definition: console.h:118
static bool mute
Definition: console.h:46
virtual void process(ostringstream *str_os)
Definition: console.cpp:67
static bool quiet
flag to mute console (loats output) or quiet console
Definition: console.h:46
BasicCon & Message(bool h=true)
set verbose level of next message to "msg"
Definition: console.cpp:283
3x3 Matrix
Definition: Matrix3.h:47
BasicCon & operator<<(const char *s)
Definition: console.cpp:75
virtual ~BasicCon()
Definition: console.cpp:52
void SetQuiet(bool Q)
Definition: console.h:60
Definition: console.h:42
BasicCon & Error(bool h=true)
set verbose level of next message to "err"
Definition: console.cpp:261
static int GetVerbose()
Definition: console.h:63
Handle message ouput on the console.
Definition: console.h:39
Definition: Counter.h:61
static bool immediate
Definition: console.h:107
BasicCon & Timing(bool h=true)
set verbose level of next message to "tme"
Definition: console.cpp:327
static bool timing
Definition: console.h:47
Definition: console.h:42
Definition: console.h:42
static void SetVerbose(int vl=all)
set verbose level
Definition: console.cpp:234
static ConsoleWindow * Window
Definition: console.h:103
Definition: Counter.h:29
console writing into per-process file
Definition: console.h:134
BasicCon & Warning(bool h=true)
set verbose level of next message to "wrn"
Definition: console.cpp:272
void SetTiming(bool T)
Definition: console.h:61
virtual void flush()
Definition: console.cpp:339
std::ofstream m_debugfile
Definition: console.h:137
#define NULL
Definition: t_list.h:17
virtual void show(char *level, bool h)
Definition: console.cpp:243
virtual void SetOStream(ostream *Ios)
Definition: console.cpp:58
virtual ~Con()
Definition: console.cpp:362
Definition: console.h:42
BasicCon & Info(bool h=true)
set verbose level of next message to "inf"
Definition: console.cpp:294
static int VLevel
current verbose level
Definition: console.h:45
BasicCon & XDebug(bool h=true)
set verbose level of next message to "xdg"
Definition: console.cpp:316
VerboseLevel
Definition: console.h:42
virtual ~ConsoleWindow()
Definition: console.h:106
BasicCon & Debug(bool h=true)
set verbose level of next message to "dbg"
Definition: console.cpp:305
Con console
BasicCon & Critical(bool h=true)
set verbose level of next message to "crt"
Definition: console.cpp:250
virtual char * GetLast(char *buff)
Definition: console.cpp:394
BasicCon tconsole
virtual ~FCon()
Definition: console.cpp:420
virtual void process(ostringstream *str_os)
Definition: console.cpp:365
Con()
Definition: console.cpp:353
virtual void UpdateCon()=0
console with window buffer
Definition: console.h:116
static bool IsOpen()
Definition: console.h:109
Definition: console.h:42
Definition: console.h:42
static void Update()
Definition: console.cpp:403
char * CurBuffer
buffer for output & process
Definition: console.h:49