diff --git a/src/event/event_manager.hpp b/src/event/event_manager.hpp index 5c3f00f..d630752 100755 --- a/src/event/event_manager.hpp +++ b/src/event/event_manager.hpp @@ -11,27 +11,11 @@ namespace VE { struct event_manager : public hack::patterns::singleton { - // std::map> m_funcs; - // - // template - // std::string connect(T* obj, void (T::*method)(event)) - // { - // std::string key = hack::security::generate_uuid(); - // m_funcs[key] = std::bind(method, obj, std::placeholders::_1); - // return key; - // } - // - // void disconnect(std::string key) - // { - // auto it = m_funcs.find(key); - // m_funcs.erase(it); - // } - void emit(event e) { try { - for(auto& f : m_funcs) f.m_func(e); + for(auto& f : m_funcs) f.func(e); } catch(const std::exception& ex) { @@ -46,8 +30,8 @@ namespace VE struct EventHandler { - std::function m_func; - void* m_obj; + std::function func; + void* obj; }; std::vector m_funcs; @@ -57,8 +41,7 @@ namespace VE { m_funcs.push_back({ std::bind(method, obj, std::placeholders::_1), - static_cast(obj), - reinterpret_cast(&method) + static_cast(obj) }); } @@ -68,7 +51,7 @@ namespace VE m_funcs.erase( std::remove_if(m_funcs.begin(), m_funcs.end(), [obj](const auto& handler) { - return handler.m_obj == obj; + return handler.obj == obj; }), m_funcs.end() );