XtermConsole.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00028 #if !_WIN32 || DOXYGEN
00029
00030 #ifndef KEYVALUE_SYS_LOGGER_XTERMCONSOLE_H_
00031 #define KEYVALUE_SYS_LOGGER_XTERMCONSOLE_H_
00032
00033 #include <cstdio>
00034
00035 #include "keyvalue/sys/logger/LoggerImpl.h"
00036 #include "keyvalue/sys/logger/policy/AddPrefix.h"
00037 #include "keyvalue/sys/logger/policy/XtermColor.h"
00038
00039 namespace keyvalue {
00040 namespace logger {
00041
00047 class XtermConsole : public LoggerImpl<AddPrefix, XtermColor> {
00048
00049 public:
00050
00051 XtermConsole(unsigned int level, const string& title);
00052
00053 ~XtermConsole();
00054
00055 private:
00056
00064 class FileRaii {
00065
00066 public:
00067
00068 explicit
00069 FileRaii(const int fd = -1);
00070
00071 ~FileRaii();
00072
00073 FileRaii& operator=(const int fd);
00074
00075 void
00076 close();
00077
00078 int
00079 getFd() const;
00080
00081 private:
00082
00083 int fd_;
00084 };
00085
00086 unsigned int level_;
00087 pid_t childPid_;
00088 FileRaii writeSlave_;
00089
00090 bool
00091 send(const string& message);
00092
00093 };
00094
00095 }
00096 }
00097
00098 #endif // KEYVALUE_SYS_LOGGER_XTERMCONSOLE_H_
00099
00100 #endif // !_WIN32 || DOXYGEN