aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/EventHandler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/api/EventHandler.hpp')
-rw-r--r--src/crepe/api/EventHandler.hpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/crepe/api/EventHandler.hpp b/src/crepe/api/EventHandler.hpp
new file mode 100644
index 0000000..564d3d7
--- /dev/null
+++ b/src/crepe/api/EventHandler.hpp
@@ -0,0 +1,27 @@
+
+#include <typeindex>
+
+#include "EventHandler.h"
+
+namespace crepe {
+
+// Implementation of EventHandlerWrapper constructor
+template <typename EventType>
+EventHandlerWrapper<EventType>::EventHandlerWrapper(
+ const EventHandler<EventType> & handler)
+ : m_handler(handler),
+ m_handler_type(m_handler.target_type().name()) {}
+
+// Implementation of EventHandlerWrapper::call
+template <typename EventType>
+bool EventHandlerWrapper<EventType>::call(const Event & e) {
+ return m_handler(static_cast<const EventType &>(e));
+}
+
+// Implementation of EventHandlerWrapper::get_type
+template <typename EventType>
+std::string EventHandlerWrapper<EventType>::get_type() const {
+ return m_handler_type;
+}
+
+} //namespace crepe