AnCH Framework 0.1
Another C++ Hack Framework
 
Loading...
Searching...
No Matches
eventHandler.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2012 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include "events/eventBus.hpp"
23
24#include <functional>
25
26#include "events/event.hpp"
27
28
29namespace anch::events {
30
40 template<typename T, typename Derived>
41 class EventHandler: public Observer<T> {
42 private:
44 std::function<void(Derived&,const anch::events::Event<T>&)> _callbackFunction;
45
48
49 public:
58 EventHandler(const std::function<void(Derived&,const anch::events::Event<T>&)>& callbackFunction, bool useEventBus = false);
59
68 EventHandler(const std::function<void(Derived&,const anch::events::Event<T>&)>& callbackFunction, anch::events::EventBus<T>& eventBus);
69
74 virtual ~EventHandler();
75
76 public:
82 virtual void handle(const anch::events::Event<T>& event) noexcept;
83
84 };
85
86}
87
88#include "events/impl/eventHandler.hpp"
A class which manage global events firing and events QoS.
Definition eventBus.hpp:45
EventHandler(const std::function< void(Derived &, const anch::events::Event< T > &)> &callbackFunction, bool useEventBus=false)
EventHandler(const std::function< void(Derived &, const anch::events::Event< T > &)> &callbackFunction, anch::events::EventBus< T > &eventBus)
virtual void handle(const anch::events::Event< T > &event) noexcept
An observer interface of the observers/observable design pattern.
Definition observer.hpp:39
Events management namespace.
Definition event.hpp:25
Event representation.
Definition event.hpp:37