source: pacpusframework/branches/2.0-beta1/include/extlib/apache-log4cxx/log4cxx/filter/levelmatchfilter.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 4.1 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _LOG4CXX_FILTER_LEVEL_MATCH_FILTER_H
19#define _LOG4CXX_FILTER_LEVEL_MATCH_FILTER_H
20
21#if defined(_MSC_VER)
22#pragma warning ( push )
23#pragma warning ( disable: 4231 4251 4275 4786 )
24#endif
25
26
27#include <log4cxx/spi/filter.h>
28#include <log4cxx/level.h>
29
30namespace log4cxx
31{
32 class Level;
33
34 namespace filter
35 {
36 /**
37 This is a very simple filter based on level matching.
38
39 <p>The filter admits two options <b>LevelToMatch</b> and
40 <b>AcceptOnMatch</b>. If there is an exact match between the value
41 of the <b>LevelToMatch</b> option and the level of the {@link
42 spi::LoggingEvent LoggingEvent}, then the #decide method returns {@link
43 spi::Filter#ACCEPT ACCEPT} in case the <b>AcceptOnMatch</b>
44 option value is set to <code>true</code>, if it is <code>false</code>
45 then {@link spi::Filter#DENY DENY} is returned. If there is no match,
46 {@link spi::Filter#NEUTRAL NEUTRAL} is returned.
47 */
48
49 class LOG4CXX_EXPORT LevelMatchFilter : public spi::Filter
50 {
51 private:
52 bool acceptOnMatch;
53 LevelPtr levelToMatch;
54
55 public:
56 typedef spi::Filter BASE_CLASS;
57 DECLARE_LOG4CXX_OBJECT(LevelMatchFilter)
58 BEGIN_LOG4CXX_CAST_MAP()
59 LOG4CXX_CAST_ENTRY(LevelMatchFilter)
60 LOG4CXX_CAST_ENTRY_CHAIN(BASE_CLASS)
61 END_LOG4CXX_CAST_MAP()
62
63 LevelMatchFilter();
64
65 /**
66 Set options
67 */
68 virtual void setOption(const LogString& option,
69 const LogString& value);
70
71 void setLevelToMatch(const LogString& levelToMatch);
72
73 LogString getLevelToMatch() const;
74
75 inline void setAcceptOnMatch(bool acceptOnMatch1)
76 { this->acceptOnMatch = acceptOnMatch1; }
77
78 inline bool getAcceptOnMatch() const
79 { return acceptOnMatch; }
80
81 /**
82 Return the decision of this filter.
83
84 Returns {@link spi::Filter#NEUTRAL NEUTRAL} if the
85 <b>LevelToMatch</b> option is not set or if there is not match.
86 Otherwise, if there is a match, then the returned decision is
87 {@link spi::Filter#ACCEPT ACCEPT} if the <b>AcceptOnMatch</b>
88 property is set to <code>true</code>. The returned decision is
89 {@link spi::Filter#DENY DENY} if the
90 <b>AcceptOnMatch</b> property is set to false.
91 */
92 FilterDecision decide(const spi::LoggingEventPtr& event) const;
93 }; // class LevelMatchFilter
94 LOG4CXX_PTR_DEF(LevelMatchFilter);
95 } // namespace filter
96} // namespace log4cxx
97
98#if defined(_MSC_VER)
99#pragma warning ( pop )
100#endif
101
102#endif // _LOG4CXX_FILTER_STRING_MATCH_FILTER_H
Note: See TracBrowser for help on using the repository browser.