00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _LOG4CPP_FILTER_HH
00011 #define _LOG4CPP_FILTER_HH
00012
00013 #include <log4cpp/Portability.hh>
00014 #include <log4cpp/LoggingEvent.hh>
00015
00016 namespace log4cpp {
00017
00049 class LOG4CPP_EXPORT Filter {
00050 public:
00051
00052 typedef enum { DENY = -1,
00053 NEUTRAL = 0,
00054 ACCEPT = 1
00055 } Decision;
00056
00060 Filter();
00061
00065 virtual ~Filter();
00066
00071 virtual void setChainedFilter(Filter* filter);
00072
00078 virtual Filter* getChainedFilter();
00079
00084 virtual Filter* getEndOfChain();
00085
00091 virtual void appendChainedFilter(Filter* filter);
00092
00100 virtual Decision decide(const LoggingEvent& event);
00101
00102 protected:
00110 virtual Decision _decide(const LoggingEvent& event) = 0;
00111
00112 private:
00113 Filter* _chainedFilter;
00114
00115 };
00116
00117 }
00118
00119 #endif // _LOG4CPP_FILTER_HH