diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-12-14 02:03:52 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-12-14 02:03:52 +0100 |
commit | c5d18a42da8e9ed19c9520308fef087f4fb76323 (patch) | |
tree | 76df915327f053ea5438f7203d2cf94177f7d8b3 /src/core/managed/Managed.hpp | |
parent | 467d8d52ffda8b5d520ee0eb1e42125bdb533ff4 (diff) |
added data functions and memory tagging functions. As it turns out the latter are unnecessary and will be removed
Diffstat (limited to 'src/core/managed/Managed.hpp')
-rw-r--r-- | src/core/managed/Managed.hpp | 28 |
1 files changed, 27 insertions, 1 deletions
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<Managed> h); + + bool hasDataKey(const std::string &key); + + Rooted<Managed> 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<Managed> h) { + mgr.storeData(this, key, h.get()); +} + +inline bool Managed::hasDataKey(const std::string &key) +{ + return mgr.readData(this, key) != nullptr; +} + +inline Rooted<Managed> 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_ */ |