#include <mem_displayer.h>
Inheritance diagram for NLMISC::CMemDisplayer:
Nevrax France
Definition at line 45 of file mem_displayer.h.
Public Member Functions | |
void | clear () |
CMemDisplayer (const char *displayerName="") | |
Constructor. | |
void | display (const CLog::TDisplayInfo &args, const char *message) |
Display the string where it does. | |
const std::deque< std::string > & | lockStrings () |
void | setParam (uint32 maxStrings=50) |
Set Parameter of the displayer if not set at the ctor time. | |
void | unlockStrings () |
void | write (std::string &str) |
void | write (CLog *log=NULL, bool quiet=true) |
Write N last line into a displayer (InfoLog by default). | |
Static Public Member Functions | |
const char * | dateToComputerString (time_t date) |
Convert date to "784551148" string (time in second from 1975). | |
const char * | dateToHumanString (time_t date) |
Convert date to "2000/01/14 10:05:17" string. | |
const char * | dateToHumanString () |
Convert the current date to human string. | |
const char * | logTypeToString (CLog::TLogType logType, bool longFormat=false) |
Convert log type to string. | |
Data Fields | |
std::string | DisplayerName |
This is the idenfiant for a displayer, it is used to fond or remove a displayer. | |
Protected Member Functions | |
virtual void | doDisplay (const CLog::TDisplayInfo &args, const char *message) |
Put the string into the file. | |
Static Protected Member Functions | |
const char * | HeaderString () |
Protected Attributes | |
bool | _CanUseStrings |
uint32 | _MaxStrings |
bool | _NeedHeader |
std::deque< std::string > | _Strings |
|
Constructor.
Definition at line 318 of file mem_displayer.cpp. References setParam().
00318 : IDisplayer (displayerName), _NeedHeader(true), _MaxStrings(50), _CanUseStrings(true) 00319 { 00320 setParam (50); 00321 } |
|
Definition at line 62 of file mem_displayer.h. References _CanUseStrings, and _Strings. Referenced by NLNET::IService::main(), NLNET::serviceGetView(), and NLNET::updateAdmin().
00062 { if (_CanUseStrings) _Strings.clear (); } |
|
Convert date to "784551148" string (time in second from 1975).
Definition at line 103 of file displayer.cpp. References NLMISC::smprintf().
00104 { 00105 static char cstime[25]; 00106 smprintf (cstime, 25, "%ld", &date); 00107 return cstime; 00108 } |
|
Convert date to "2000/01/14 10:05:17" string.
Definition at line 92 of file displayer.cpp. References uint32.
00093 { 00094 static char cstime[25]; 00095 struct tm *tms = localtime(&date); 00096 if (tms) 00097 strftime (cstime, 25, "%Y/%m/%d %H:%M:%S", tms); 00098 else 00099 sprintf(cstime, "bad date %d", (uint32)date); 00100 return cstime; 00101 } |
|
Convert the current date to human string.
Definition at line 85 of file displayer.cpp. Referenced by NLNET::CNetDisplayer::doDisplay(), doDisplay(), NLMISC::CMsgBoxDisplayer::doDisplay(), NLMISC::CFileDisplayer::doDisplay(), and NLMISC::IDisplayer::HeaderString().
00086 { 00087 time_t date; 00088 time (&date); 00089 return dateToHumanString (date); 00090 } |
|
Display the string where it does.
Definition at line 132 of file displayer.cpp. References NLMISC::IDisplayer::doDisplay().
|
|
Put the string into the file.
Implements NLMISC::IDisplayer. Reimplemented in NLMISC::CLightMemDisplayer. Definition at line 330 of file mem_displayer.cpp. References _CanUseStrings, _MaxStrings, _Strings, NLMISC::CLog::TDisplayInfo::Date, NLMISC::IDisplayer::dateToHumanString(), NLMISC::CLog::TDisplayInfo::Filename, NLMISC::IDisplayer::HeaderString(), NLMISC::CLog::TDisplayInfo::Line, NLMISC::CLog::TDisplayInfo::LogType, NLMISC::IDisplayer::logTypeToString(), NLMISC::CLog::TDisplayInfo::ProcessName, NLMISC::CLog::TDisplayInfo::ThreadId, and NLMISC::toString().
00331 { 00332 // stringstream ss; 00333 string str; 00334 bool needSpace = false; 00335 00336 if (!_CanUseStrings) return; 00337 00338 if (_NeedHeader) 00339 { 00340 str += HeaderString(); 00341 _NeedHeader = false; 00342 } 00343 00344 if (args.Date != 0) 00345 { 00346 str += dateToHumanString(args.Date); 00347 needSpace = true; 00348 } 00349 00350 if (!args.ProcessName.empty()) 00351 { 00352 if (needSpace) { str += " "; needSpace = false; } 00353 str += args.ProcessName; 00354 needSpace = true; 00355 } 00356 00357 if (args.LogType != CLog::LOG_NO) 00358 { 00359 if (needSpace) { str += " "; needSpace = false; } 00360 str += logTypeToString(args.LogType); 00361 needSpace = true; 00362 } 00363 00364 // Write thread identifier 00365 if ( args.ThreadId != 0 ) 00366 { 00367 if (needSpace) { str += " "; needSpace = false; } 00368 str += NLMISC::toString("%5u", args.ThreadId); 00369 needSpace = true; 00370 } 00371 00372 if (args.Filename != NULL) 00373 { 00374 if (needSpace) { str += " "; needSpace = false; } 00375 str += CFile::getFilename(args.Filename); 00376 needSpace = true; 00377 } 00378 00379 if (args.Line != -1) 00380 { 00381 if (needSpace) { str += " "; needSpace = false; } 00382 str += NLMISC::toString(args.Line); 00383 needSpace = true; 00384 } 00385 00386 if (needSpace) { str += " : "; needSpace = false; } 00387 00388 str += message; 00389 00390 // clear old line 00391 while (_Strings.size () > _MaxStrings) 00392 { 00393 _Strings.pop_front (); 00394 } 00395 00396 _Strings.push_back (str); 00397 } |
|
Definition at line 110 of file displayer.cpp. References NLMISC::IDisplayer::dateToHumanString(), and NLMISC::smprintf(). Referenced by doDisplay(), and NLMISC::CFileDisplayer::doDisplay().
00111 { 00112 static char header[1024]; 00113 smprintf(header, 1024, "\nLog Starting [%s]\n", dateToHumanString()); 00114 return header; 00115 } |
|
Definition at line 58 of file mem_displayer.h. References _CanUseStrings, and _Strings. Referenced by NLNET::IService::main(), NLMISC::NLMISC_COMMAND(), NLNET::serviceGetView(), and NLNET::updateAdmin().
00058 { _CanUseStrings = false; return _Strings; } |
|
Convert log type to string.
Definition at line 77 of file displayer.cpp. References NLMISC::LogTypeToString. Referenced by NLMISC::CWindowDisplayer::doDisplay(), NLNET::CNetDisplayer::doDisplay(), doDisplay(), NLMISC::CMsgBoxDisplayer::doDisplay(), NLMISC::CFileDisplayer::doDisplay(), and NLMISC::CStdDisplayer::doDisplay().
00078 { 00079 if (logType < CLog::LOG_NO || logType > CLog::LOG_UNKNOWN) 00080 return "<NotDefined>"; 00081 00082 return LogTypeToString[longFormat?1:0][logType]; 00083 } |
|
Set Parameter of the displayer if not set at the ctor time.
Definition at line 323 of file mem_displayer.cpp. References _MaxStrings, and uint32. Referenced by CMemDisplayer(), and NLNET::serviceGetView().
00324 { 00325 _MaxStrings = maxStrings; 00326 } |
|
Definition at line 60 of file mem_displayer.h. References _CanUseStrings. Referenced by NLNET::IService::main(), NLMISC::NLMISC_COMMAND(), NLNET::serviceGetView(), and NLNET::updateAdmin().
00060 { _CanUseStrings = true; } |
|
Definition at line 426 of file mem_displayer.cpp. References _Strings.
|
|
Write N last line into a displayer (InfoLog by default).
Definition at line 399 of file mem_displayer.cpp. References _Strings, NLMISC::displayCallStack(), NLMISC::CLog::forceDisplayRaw(), and NLMISC::InfoLog. Referenced by NLMISC::getCallStackAndLog(), and NLMISC::NLMISC_COMMAND().
00400 { 00401 if (log == NULL) 00402 log = InfoLog; 00403 00404 if ( ! quiet ) 00405 { 00406 log->forceDisplayRaw ("------------------------------------------------------------------------------\n"); 00407 log->forceDisplayRaw ("----------------------------------------- display MemDisplayer history -------\n"); 00408 log->forceDisplayRaw ("------------------------------------------------------------------------------\n"); 00409 } 00410 for (deque<string>::iterator it = _Strings.begin(); it != _Strings.end(); it++) 00411 { 00412 log->forceDisplayRaw ((*it).c_str()); 00413 } 00414 if ( ! quiet ) 00415 { 00416 log->forceDisplayRaw ("------------------------------------------------------------------------------\n"); 00417 log->forceDisplayRaw ("----------------------------------------- display MemDisplayer callstack -----\n"); 00418 log->forceDisplayRaw ("------------------------------------------------------------------------------\n"); 00419 displayCallStack(log); 00420 log->forceDisplayRaw ("------------------------------------------------------------------------------\n"); 00421 log->forceDisplayRaw ("----------------------------------------- end of MemDisplayer display --------\n"); 00422 log->forceDisplayRaw ("------------------------------------------------------------------------------\n"); 00423 } 00424 } |
|
Definition at line 72 of file mem_displayer.h. Referenced by clear(), doDisplay(), lockStrings(), and unlockStrings(). |
|
Definition at line 70 of file mem_displayer.h. Referenced by doDisplay(), and setParam(). |
|
Definition at line 68 of file mem_displayer.h. |
|
Definition at line 74 of file mem_displayer.h. Referenced by clear(), doDisplay(), lockStrings(), and write(). |
|
This is the idenfiant for a displayer, it is used to fond or remove a displayer.
Definition at line 63 of file displayer.h. Referenced by NLMISC::IDisplayer::IDisplayer(). |