Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
MyTrace.h
Go to the documentation of this file.
1 #ifndef MYTRACE_H
2 #define MYTRACE_H
3 
4 #include "..\framework\Frm_TBuff.h"
5 
6 #include <stdio.h>
7 #include <fstream>
8 #include <sstream>
9 
10 using namespace std;
11 
12 namespace ToolBox {
13 
14 static std::string temp;
15 
16 static const char* GetLastError()
17 {
18  TBuff* _Buff = TBuff::GetInstance();
19  temp = _Buff->Get();
20 /* memcpy(temp, _Buff->Get(), 512);
21  temp[strlen(_Buff->Get())] = '\0';/**/
22  _Buff->Reset();
23  return temp.c_str();
24 };
25 
26 static void RemTrace(void)
27 {
28  TBuff* _Buff = TBuff::GetInstance();
29  ofstream fout(_Buff->_TraceName);
30  fout << "Debug file ..." << "\n";
31  fout << flush;
32  fout.close();
33 };
34 
35 template<typename T1>
36  void Trace( T1 par1 )
37  {
38  TBuff* _Buff = TBuff::GetInstance();
39  stringstream ss;
40  ss << par1 << ends;
41  _Buff->Set(ss.str().c_str());
42  ofstream fout(_Buff->_TraceName, ios::app);
43  fout << par1 << "\n";
44  fout << flush;
45  fout.close();
46  };
47 
48 template<typename T1, typename T2>
49  void Trace( T1 par1, T2 par2 )
50  {
51  stringstream ss;
52 
53  ss << par1 << " " << par2 << ends;
54  Trace( ss.str() );
55  };
56 
57 template<typename T1, typename T2, typename T3>
58  void Trace( T1 par1, T2 par2, T3 par3 )
59  {
60  stringstream ss;
61 
62  ss << par1 << " " << par2 << " " << par3 << ends;
63  Trace( ss.str() );
64  };
65 
66 template<class T1, typename T2, typename T3, typename T4>
67  void Trace( T1 par1, T2 par2, T3 par3, T4 par4 ) {
68  stringstream ss;
69 
70  ss << par1 << " " << par2 << " " << par3 << " " << par4 << ends;
71  Trace( ss.str() );
72  };
73 
74 template<typename T1, typename T2, typename T3, typename T4, typename T5>
75  void Trace( T1 par1, T2 par2, T3 par3, T4 par4, T5 par5 )
76  {
77  stringstream ss;
78 
79  ss << par1 << " " << par2 << " " << par3 << " " << par4 << " " << par5 << ends;
80  Trace( ss.str() );
81  };
82 
83 template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
84  void Trace( T1 par1, T2 par2, T3 par3, T4 par4, T5 par5, T6 par6 )
85  {
86  stringstream ss;
87 
88  ss << par1 << " " << par2 << " " << par3 << " " << par4 << " " << par5 << " " << par6 << ends;
89  Trace( ss.str() );
90  };
91 
92 template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
93  void Trace( T1 par1, T2 par2, T3 par3, T4 par4, T5 par5, T6 par6, T7 par7 )
94  {
95  stringstream ss;
96 
97  ss << par1 << " " << par2 << " " << par3 << " " << par4 << " " << par5 << " " << par6 << " " << par7 << ends;
98  Trace( ss.str() );
99  };
100 };
101 
102 //#ifdef DEBUG
103  #define GETLASTERROR ToolBox::GetLastError()
104 //#else
105 // #define GETLASTERROR "No reporting enabled...\n"
106 //#endif
107 
108 
109 //#ifdef DEBUG
110  #define MYTRACE ToolBox::Trace
111 //#else
112 // #define MYTRACE //
113 //#endif
114 
115 //#ifdef DEBUG
116  #define START_TRACE _Buff = TBuff::GetInstance();GetCurrentDirectory(512, _Buff->_TraceName);memcpy(&_Buff->_TraceName[strlen(_Buff->_TraceName)], "\\Debug\\Trace.txt\0",17);ToolBox::RemTrace()
117 //#else
118 // #define START_TRACE //
119 //#endif
120 
121 //#ifdef DEBUG
122  #define END_TRACE delete _Buff
123 //#else
124 // #define END_TRACE //
125 //#endif
126 
127 //#ifdef DEBUG
128  #define DECLARE_TRACE TBuff* TBuff::_Instance = 0; TBuff* _Buff
129 //#else
130 // #define END_TRACE //
131 //#endif
132 
133 #endif
Definition: Frm_Tbuff.h:13
void Reset(void)
Definition: Frm_Tbuff.h:18
static TBuff * GetInstance(void)
Definition: Frm_Tbuff.h:15
const char * Get(void)
Definition: Frm_Tbuff.h:17
char _TraceName[512]
Definition: Frm_Tbuff.h:18
void Set(const char *pText)
Definition: Frm_Tbuff.h:16
Definition: IOTexture_BMP.h:16
void Trace(T1 par1, T2 par2, T3 par3, T4 par4, T5 par5, T6 par6, T7 par7)
Definition: MyTrace.h:93