From 45f891fe0368efead661240fef872d006db34d05 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Fri, 2 Jan 2015 23:35:24 +0100 Subject: Allowing to pass arbitrary data to an event handler (not only Managed objects) --- src/core/managed/Managed.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/core/managed/Managed.cpp') diff --git a/src/core/managed/Managed.cpp b/src/core/managed/Managed.cpp index d9db0e0..341e0d0 100644 --- a/src/core/managed/Managed.cpp +++ b/src/core/managed/Managed.cpp @@ -28,7 +28,8 @@ namespace ousia { /* Class Managed */ -void Managed::storeData(const std::string &key, Handle h) { +void Managed::storeData(const std::string &key, Handle h) +{ mgr.storeData(this, key, h.get()); } @@ -37,11 +38,13 @@ bool Managed::hasDataKey(const std::string &key) return mgr.readData(this, key) != nullptr; } -Rooted Managed::readData(const std::string &key) { +Rooted Managed::readData(const std::string &key) +{ return mgr.readData(this, key); } -std::map> Managed::readData() { +std::map> Managed::readData() +{ auto map = mgr.readData(this); std::map> res; for (auto e : map) { @@ -50,14 +53,15 @@ std::map> Managed::readData() { return res; } -bool Managed::deleteData(const std::string &key) { +bool Managed::deleteData(const std::string &key) +{ return mgr.deleteData(this, key); } EventId Managed::registerEvent(EventType type, EventHandler handler, - Handle owner) + Handle owner, void *data) { - return mgr.registerEvent(this, type, handler, owner.get()); + return mgr.registerEvent(this, type, handler, owner.get(), data); } bool Managed::unregisterEvent(EventId id) @@ -65,16 +69,15 @@ bool Managed::unregisterEvent(EventId id) return mgr.unregisterEvent(this, id); } -bool Managed::triggerEvent(Event &data) +bool Managed::unregisterEvent(EventType type, EventHandler handler, + Handle owner, void *data) { - return mgr.triggerEvent(this, data); + return mgr.unregisterEvent(this, type, handler, owner.get(), data); } -const RttiBase &Managed::type() const -{ - return typeOf(*this); -} +bool Managed::triggerEvent(Event &ev) { return mgr.triggerEvent(this, ev); } -bool Managed::isa(const RttiBase &t) const { return type().isa(t); } +const RttiBase &Managed::type() const { return typeOf(*this); } +bool Managed::isa(const RttiBase &t) const { return type().isa(t); } } -- cgit v1.2.3