21 #ifndef GRT_LOG_HEADER
22 #define GRT_LOG_HEADER
32 Log(std::string proceedingText =
""){
33 setProceedingText(proceedingText);
34 loggingEnabledPtr = NULL;
35 writeProceedingText =
true;
36 writeProceedingTextPtr = &writeProceedingText;
37 lastMessagePtr = &lastMessage;
42 const Log& operator<< (
const bool val )
const{
43 if( *loggingEnabledPtr ){
44 if( *writeProceedingTextPtr ){
45 *writeProceedingTextPtr =
false;
47 std::cout << proceedingText.c_str();
49 std::cout << proceedingText.c_str() << val;
55 const Log& operator<< (
const short val )
const{
56 if( *loggingEnabledPtr ){
57 if( *writeProceedingTextPtr ){
58 *writeProceedingTextPtr =
false;
60 std::cout << proceedingText.c_str();
68 const Log& operator<< (
const unsigned short val )
const{
69 if( *loggingEnabledPtr ){
70 if( *writeProceedingTextPtr ){
71 *writeProceedingTextPtr =
false;
73 std::cout << proceedingText.c_str();
81 const Log& operator<< (
const int val )
const{
82 if( *loggingEnabledPtr ){
83 if( *writeProceedingTextPtr ){
84 *writeProceedingTextPtr =
false;
86 std::cout << proceedingText.c_str();
94 const Log& operator<< (
const unsigned int val )
const{
95 if( *loggingEnabledPtr ){
96 if( *writeProceedingTextPtr ){
97 *writeProceedingTextPtr =
false;
99 std::cout << proceedingText.c_str();
107 const Log& operator<< (
const long val )
const{
108 if( *loggingEnabledPtr ){
109 if( *writeProceedingTextPtr ){
110 *writeProceedingTextPtr =
false;
111 *lastMessagePtr =
"";
112 std::cout << proceedingText.c_str();
119 const Log& operator<< (
const unsigned long val )
const{
120 if( *loggingEnabledPtr ){
121 if( *writeProceedingTextPtr ){
122 *writeProceedingTextPtr =
false;
123 *lastMessagePtr =
"";
124 std::cout << proceedingText.c_str();
132 const Log& operator<< (
const unsigned long long val )
const{
133 if( *loggingEnabledPtr ){
134 if( *writeProceedingTextPtr ){
135 *writeProceedingTextPtr =
false;
136 *lastMessagePtr =
"";
137 std::cout << proceedingText.c_str();
145 const Log& operator<< (
const float val )
const{
146 if( *loggingEnabledPtr ){
147 if( *writeProceedingTextPtr ){
148 *writeProceedingTextPtr =
false;
149 *lastMessagePtr =
"";
150 std::cout << proceedingText.c_str();
157 const Log& operator<< (
const double val )
const{
158 if( *loggingEnabledPtr ){
159 if( *writeProceedingTextPtr ){
160 *writeProceedingTextPtr =
false;
161 *lastMessagePtr =
"";
162 std::cout << proceedingText.c_str();
170 const Log& operator<< (
const long double val )
const{
171 if( *loggingEnabledPtr ){
172 if( *writeProceedingTextPtr ){
173 *writeProceedingTextPtr =
false;
174 *lastMessagePtr =
"";
175 std::cout << proceedingText.c_str();
182 const Log& operator<< (
const void* val )
const{
183 if( *loggingEnabledPtr ){
184 if( *writeProceedingTextPtr ){
185 *writeProceedingTextPtr =
false;
186 *lastMessagePtr =
"";
187 std::cout << proceedingText.c_str();
194 const Log& operator<< (
const std::string val )
const{
195 if( *loggingEnabledPtr ){
196 if( *writeProceedingTextPtr ){
197 *writeProceedingTextPtr =
false;
198 *lastMessagePtr =
"";
199 std::cout << proceedingText.c_str();
201 std::cout << val.c_str();
202 *lastMessagePtr += val;
207 const Log& operator<< (
const char* val )
const{
208 if( *loggingEnabledPtr ){
209 if( *writeProceedingTextPtr ){
210 *writeProceedingTextPtr =
false;
211 std::cout << proceedingText.c_str();
212 *lastMessagePtr =
"";
215 *lastMessagePtr += val;
221 typedef std::basic_ostream<char, std::char_traits<char> > CoutType;
224 typedef CoutType& (*StandardEndLine)(CoutType&);
227 const Log& operator<<(
const StandardEndLine manip)
const{
228 if( *loggingEnabledPtr ){
231 *writeProceedingTextPtr =
true;
234 triggerCallback( lastMessage );
241 virtual bool getLoggingEnabled()
const{
return false; }
243 std::string getProceedingText()
const{
return proceedingText; }
245 virtual std::string getLastMessage()
const{
return lastMessage; }
248 void setProceedingText(
const std::string &proceedingText){
249 if( proceedingText.length() == 0 ) this->proceedingText =
"";
250 else this->proceedingText = proceedingText +
" ";
254 virtual void triggerCallback(
const std::string &message )
const{
258 std::string proceedingText;
259 std::string lastMessage;
260 bool *loggingEnabledPtr;
261 bool *writeProceedingTextPtr;
262 std::string *lastMessagePtr;
263 bool writeProceedingText;
268 #endif //GRT_LOG_HEADER
This file contains the Util class, a wrapper for a number of generic functions that are used througho...
static std::string toString(const int &i)