00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_MEM_DISPLAYER_H
00027 #define NL_MEM_DISPLAYER_H
00028
00029 #include "nel/misc/types_nl.h"
00030 #include "nel/misc/displayer.h"
00031
00032 #include <deque>
00033 #include <string>
00034
00035
00036 namespace NLMISC {
00037
00038
00045 class CMemDisplayer : public IDisplayer
00046 {
00047 public:
00049 CMemDisplayer (const char *displayerName = "");
00050
00052 void setParam (uint32 maxStrings = 50);
00053
00055 void write (CLog *log = NULL);
00056 void write (std::string &str);
00057
00058 const std::deque<std::string> &lockStrings () { _CanUseStrings = false; return _Strings; }
00059
00060 void unlockStrings() { _CanUseStrings = true; }
00061
00062 void clear () { if (_CanUseStrings) _Strings.clear (); }
00063
00064 protected:
00066 virtual void doDisplay ( const TDisplayInfo& args, const char *message );
00067
00068 private:
00069
00070 bool _NeedHeader;
00071
00072 uint32 _MaxStrings;
00073
00074 bool _CanUseStrings;
00075
00076 std::deque<std::string> _Strings;
00077
00078 };
00079
00080
00081 }
00082
00083
00084 #endif // NL_MEM_DISPLAYER_H
00085
00086