m2etis  0.4
FalsePredicate.h
Go to the documentation of this file.
1 /*
2  Copyright (2016) Michael Baer, Daniel Bonrath, All rights reserved.
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15  */
16 
22 #ifndef __M2ETIS_PUBSUB_FILTER_FILTEREXPRESSIONS_FALSEPREDICATE_H__
23 #define __M2ETIS_PUBSUB_FILTER_FILTEREXPRESSIONS_FALSEPREDICATE_H__
24 
26 
27 namespace m2etis {
28 namespace pubsub {
29 namespace filter {
30 
31  // class FalsePredicate helpful to avoid redundancies when using periodic resubusbecie
32  // maybe not useful any more
33  template <typename EventType>
34  class FalsePredicate : public Predicate<EventType> {
35  public:
36  typedef EventType schema; // needed for operator overloading
37 
38  virtual void Accept(FilterVisitor<EventType> & filter_visitor) const override {
39  filter_visitor.Visit(this);
40  }
41 
42  virtual bool match(const EventType &) const { return false; }
43 
44  virtual bool overlaps(const Predicate<EventType> *) const { return false; }
45 
46  virtual ~FalsePredicate() {}
47 
48  private:
49  friend class boost::serialization::access; // not sure if necessary
50  template <typename Archive>
51  void serialize(Archive & ar, const unsigned int version) {
52  ar & boost::serialization::base_object<Predicate<EventType> >(*this);
53  }
54  }; // class FalsePredicate
55 
56 } /* namespace filter */
57 } /* namespace pubsub */
58 } /* namespace m2etis */
59 
60 #endif /* __M2ETIS_PUBSUB_FILTER_FILTEREXPRESSIONS_FALSEPREDICATE_H__ */
61 
friend class boost::serialization::access
virtual bool match(const EventType &) const
virtual void Accept(FilterVisitor< EventType > &filter_visitor) const override
virtual void Visit(const FilterExp< EventType > *)=0
virtual bool overlaps(const Predicate< EventType > *) const