2
* Copyright © 2012 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 3 as
6
* published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Thomas Voss <thomas.voss@canonical.com>
19
#ifndef MIR_INPUT_FILTER_H_
20
#define MIR_INPUT_FILTER_H_
35
virtual void accept(Event* e) const = 0;
41
Filter(Filter const&) = delete;
42
Filter& operator=(Filter const&) = delete;
45
class NullFilter : public Filter
49
virtual void accept(Event* e) const;
52
class ChainingFilter : public Filter
56
ChainingFilter(std::shared_ptr<Filter> const& next_link);
58
virtual void accept(Event* e) const;
61
~ChainingFilter() = default;
62
ChainingFilter() = delete;
65
std::shared_ptr<Filter> const next_link;
70
#endif /* MIR_INPUT_FILTER_H_ */