vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
log.h
Go to the documentation of this file.
1 #ifndef LS_LOG_H_
2 #define LS_LOG_H_
3 
4 #include <string>
5 #include <sstream>
6 #include "windows.h"
7 
8 namespace AP_LSystem {
9 class Log
10 {
11 private:
12  static Log * logInst;
13 
14  unsigned m_RewritingCounter;
15  unsigned m_ModuleCounter;
16  unsigned m_TurtleCounter;
17  unsigned m_QueryCounter;
18 
19  Log(): m_RewritingCounter(0), m_ModuleCounter(0), m_TurtleCounter(0), m_QueryCounter(0) {}
20 
21  ~Log(){}
22 
23  enum Output
24  {
25  OUTPUTDEBUGSTRING,
26  FILE,
27  VRECKO,
28  } type;
29 
30  void output( const char * str )
31  {
32  switch(type)
33  {
34  case OUTPUTDEBUGSTRING:
35  OutputDebugStringA( str );
36  break;
37  case FILE:
38  break;
39  case VRECKO:
40  break;
41  }
42  }
43 
44 public:
45 
46  static Log * get()
47  {
48  if(!logInst) logInst = new Log();
49 
50  return logInst;
51  }
52 
53  void write( std::string str)
54  {
55  OutputDebugStringA( str.c_str() );
56  output( str.c_str() );
57  }
58 
59  void write( int i )
60  {
61  std::stringstream str;
62  str << i;
63  OutputDebugStringA( str.str().c_str() );
64  }
65 
66  unsigned int getRewritingCounter() const {return m_RewritingCounter;}
67 
68  unsigned int getModuleCounter() const {return m_ModuleCounter;}
69 
70  unsigned int getTurtleCounter() const {return m_TurtleCounter;}
71 
72  unsigned int getQueryCounter() const {return m_QueryCounter;}
73 
74  void incRewritingCounter() { m_RewritingCounter++;}
75 
76  void incModuleCounter() { m_ModuleCounter++;}
77 
78  void incTurtleCounter() { m_TurtleCounter++;}
79 
80  void incQueryCounter() { m_QueryCounter++;}
81 };
82 }
83 
84 #endif // LOG_H