summaryrefslogtreecommitdiff
path: root/src/core/managed/Managed.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-16 02:10:53 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-16 02:10:53 +0100
commitabbfae912b8d54106dbcbb7260c10e3a204c9f93 (patch)
tree8081a182e815484543e43e1133dc0596edc5228f /src/core/managed/Managed.cpp
parent84cbdcaba520f89eb3ddbdaf1fe2ab3db412501a (diff)
added possibility to register a ManagedType for a class derived from Managed, improved Managed readData function
Diffstat (limited to 'src/core/managed/Managed.cpp')
-rw-r--r--src/core/managed/Managed.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/core/managed/Managed.cpp b/src/core/managed/Managed.cpp
index 991f941..f55cca5 100644
--- a/src/core/managed/Managed.cpp
+++ b/src/core/managed/Managed.cpp
@@ -20,8 +20,36 @@
#include <queue>
#include "Managed.hpp"
+#include "ManagedContainer.hpp"
namespace ousia {
+/* Class Managed */
+
+void Managed::storeData(const std::string &key, Handle<Managed> h) {
+ mgr.storeData(this, key, h.get());
+}
+
+bool Managed::hasDataKey(const std::string &key)
+{
+ return mgr.readData(this, key) != nullptr;
+}
+
+Rooted<Managed> Managed::readData(const std::string &key) {
+ return mgr.readData(this, key);
+}
+
+std::map<std::string, Rooted<Managed>> Managed::readData() {
+ auto map = mgr.readData(this);
+ std::map<std::string, Rooted<Managed>> res;
+ for (auto e : map) {
+ res.emplace(e.first, e.second);
+ }
+ return res;
+}
+
+bool Managed::deleteData(const std::string &key) {
+ return mgr.deleteData(this, key);
+}
}