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