# Filter.hh

Go to the documentation of this file.

    00001 /*
    00002  * Filter.hh
    00003  *
    00004  * Copyright 2001, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
    00005  * Copyright 2001, Bastiaan Bakker. All rights reserved.
    00006  *
    00007  * See the COPYING file for the terms of usage and distribution.
    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