From c5d18a42da8e9ed19c9520308fef087f4fb76323 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Sun, 14 Dec 2014 02:03:52 +0100 Subject: added data functions and memory tagging functions. As it turns out the latter are unnecessary and will be removed --- src/core/managed/Managed.hpp | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src/core/managed/Managed.hpp') diff --git a/src/core/managed/Managed.hpp b/src/core/managed/Managed.hpp index 04c2f84..eec2fc5 100644 --- a/src/core/managed/Managed.hpp +++ b/src/core/managed/Managed.hpp @@ -64,7 +64,7 @@ public: /** * Virtual destuctor which may be overwritten by child classes. */ - virtual ~Managed(){}; + virtual ~Managed(){ mgr.unmanage(this); }; /** * Returns a reference ot the manager instance which owns this managed @@ -112,6 +112,14 @@ public: } return res; } + + void storeData(const std::string &key, Handle h); + + bool hasDataKey(const std::string &key); + + Rooted readData(const std::string &key); + + bool deleteData(const std::string &key); }; /** @@ -498,6 +506,24 @@ public: Managed *getOwner() const { return owner; } }; + +inline void Managed::storeData(const std::string &key, Handle h) { + mgr.storeData(this, key, h.get()); +} + +inline bool Managed::hasDataKey(const std::string &key) +{ + return mgr.readData(this, key) != nullptr; +} + +inline Rooted Managed::readData(const std::string &key) { + return mgr.readData(this, key); +} + +inline bool Managed::deleteData(const std::string &key) { + return mgr.deleteData(this, key); +} + } #endif /* _OUSIA_MANAGED_HPP_ */ -- cgit v1.2.3