00001 #ifndef PVLOGGER_ACCESSORIES_H_INCLUDED 00002 #define PVLOGGER_ACCESSORIES_H_INCLUDED 00003 00004 #ifndef OSCL_BASE_H_INCLUDED 00005 #include "oscl_base.h" 00006 #endif 00007 00008 #ifndef PVLOGGER_H_INCLUDED 00009 #include "pvlogger.h" 00010 #endif 00011 00017 class PVLoggerLayout 00018 { 00019 public: 00020 typedef PVLogger::message_id_type message_id_type; 00021 00022 virtual ~PVLoggerLayout() {} 00023 00029 virtual int32 FormatString(char* formatBuf, int32 formatBufSize, 00030 message_id_type msgID, const char * fmt, 00031 va_list va) = 0; 00032 00038 virtual int32 FormatOpaqueMessage(char* formatBuf, int32 formatBufSize, 00039 message_id_type msgID, int32 numPairs, 00040 va_list va) = 0; 00041 }; 00042 00048 class PVLoggerFilter 00049 { 00050 public: 00051 virtual ~PVLoggerFilter() {} 00052 00053 typedef PVLogger::message_id_type message_id_type; 00054 typedef PVLogger::log_level_type log_level_type; 00055 typedef PVLogger::filter_status_type filter_status_type; 00056 00057 virtual filter_status_type FilterString(char* tag, message_id_type msgID, log_level_type level) = 0; 00058 virtual filter_status_type FilterOpaqueMessge(char* tag, message_id_type msgID, log_level_type level) = 0; 00059 }; 00060 00061 const PVLoggerFilter::filter_status_type PVLOGGER_FILTER_ACCEPT = 1; 00062 const PVLoggerFilter::filter_status_type PVLOGGER_FILTER_REJECT = 2; 00063 const PVLoggerFilter::filter_status_type PVLOGGER_FILTER_NEUTRAL = 3; 00064 00068 class AllPassFilter : public PVLoggerFilter 00069 { 00070 public: 00071 typedef PVLoggerFilter::message_id_type message_id_type; 00072 typedef PVLoggerFilter::log_level_type log_level_type; 00073 typedef PVLoggerFilter::filter_status_type filter_status_type; 00074 00075 AllPassFilter() {}; 00076 virtual ~AllPassFilter() {}; 00077 00078 filter_status_type FilterString(char* tag, message_id_type msgID, log_level_type level) 00079 { 00080 OSCL_UNUSED_ARG(tag); 00081 OSCL_UNUSED_ARG(msgID); 00082 OSCL_UNUSED_ARG(level); 00083 return (PVLOGGER_FILTER_ACCEPT); 00084 }; 00085 filter_status_type FilterOpaqueMessge(char* tag, message_id_type msgID, log_level_type level) 00086 { 00087 OSCL_UNUSED_ARG(tag); 00088 OSCL_UNUSED_ARG(msgID); 00089 OSCL_UNUSED_ARG(level); 00090 return (PVLOGGER_FILTER_ACCEPT); 00091 }; 00092 }; 00093 00099 class PVLoggerAppender 00100 { 00101 public: 00102 typedef PVLogger::message_id_type message_id_type; 00103 00104 virtual ~PVLoggerAppender() {} 00105 00106 virtual void AppendString(message_id_type msgID, const char *fmt, va_list va) = 0; 00107 virtual void AppendBuffers(message_id_type msgID, int32 numPairs, va_list va) = 0; 00108 }; 00109 00110 00111 #endif 00112