From d1adb30aa372397976b0a56ac2eea4063757ba2a Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 16 Apr 2015 01:07:59 +0200 Subject: Added functions for reading attached data with a certain expected type --- src/core/managed/Managed.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/core/managed/Managed.cpp') diff --git a/src/core/managed/Managed.cpp b/src/core/managed/Managed.cpp index 64e287d..731947b 100644 --- a/src/core/managed/Managed.cpp +++ b/src/core/managed/Managed.cpp @@ -42,6 +42,20 @@ Rooted Managed::readData(const std::string &key) return mgr.readData(this, key); } +Rooted Managed::readData(const std::string &key, const Rtti *type) +{ + Rooted res = mgr.readData(this, key); + if (res != nullptr && res->type()->isa(type)) { + return res; + } + return nullptr; +} + +Managed* Managed::readDataPtr(const std::string &key, const std::type_info &type) +{ + return readData(key, RttiStore::lookup(type)).get(); +} + std::map> Managed::readData() { auto map = mgr.readData(this); -- cgit v1.2.3