EventAnalysis  1.0.0
Filter.h
Go to the documentation of this file.
1 /*
2  * Filter.h
3  *
4  * Created on: 01 Feb 2013
5  * Author: Nicola Mori
6  */
7 
10 #ifndef FILTER_H_
11 #define FILTER_H_
12 
13 #include <memory>
14 #include <string>
15 
16 namespace EA {
17 
19 enum class FilterLogic { DIRECT, INVERSE };
21 enum class FilterStatus { ENABLED, DISABLED };
23 enum class FilterResult { ACCEPT, REJECT };
24 
32 class Filter {
33 public:
35  Filter();
36 
37  // Filter control methods.
48  FilterResult GetFilterResult();
49 
55  FilterLogic GetFilterLogic() { return _repr->filterLogic; }
56 
64  void SetFilterStatus(FilterStatus status);
65 
73  FilterStatus GetFilterStatus() { return _repr->filterStatus; }
74 
83  void SetFilterLogic(FilterLogic filterLogic);
84 
85 protected:
94  void SetFilterResult(FilterResult result) { _repr->filterResult = result; }
95 
96 protected:
98  friend class Filter;
102  };
103 
104  Filter(const std::shared_ptr<Representation> &impl) : _repr{impl} {}
105  std::shared_ptr<Representation> &GetRepresentation() { return _repr; }
106 
107 private:
108  std::shared_ptr<Representation> _repr;
109 };
110 
111 } // namespace EA
112 
113 #endif /* FILTER_H_ */
void SetFilterResult(FilterResult result)
Sets the result.
Definition: Filter.h:94
FilterLogic filterLogic
Definition: Filter.h:101
FilterStatus filterStatus
Definition: Filter.h:100
FilterLogic GetFilterLogic()
Get the current filter logic.
Definition: Filter.h:55
FilterLogic
Definition: Filter.h:19
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
Filter class.
Definition: Filter.h:32
std::shared_ptr< Representation > _repr
Definition: Filter.h:108
FilterResult filterResult
Definition: Filter.h:99
FilterStatus
Definition: Filter.h:21
Filter(const std::shared_ptr< Representation > &impl)
Definition: Filter.h:104
FilterResult
Definition: Filter.h:23
std::shared_ptr< Representation > & GetRepresentation()
Definition: Filter.h:105
Definition: Filter.h:97
FilterStatus GetFilterStatus()
The filter status.
Definition: Filter.h:73