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