summaryrefslogtreecommitdiff
path: root/src/core/managed/Managed.hpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-14 02:03:52 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-14 02:03:52 +0100
commitc5d18a42da8e9ed19c9520308fef087f4fb76323 (patch)
tree76df915327f053ea5438f7203d2cf94177f7d8b3 /src/core/managed/Managed.hpp
parent467d8d52ffda8b5d520ee0eb1e42125bdb533ff4 (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.hpp28
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_ */