summaryrefslogtreecommitdiff
path: root/src/core/common/Variant.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-04-16 01:08:50 +0200
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2016-04-25 22:26:12 +0200
commite8f21fa4ca283cca44c35f36482e9afa71146e49 (patch)
treebbf100767a2e5843bfa2af17bb8c789c6e87cb70 /src/core/common/Variant.cpp
parentd1adb30aa372397976b0a56ac2eea4063757ba2a (diff)
Added ManagedVariant type which is a Managed object containing a variant. This functionality is used for storing Variants in the Managed data store.
Diffstat (limited to 'src/core/common/Variant.cpp')
-rw-r--r--src/core/common/Variant.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/core/common/Variant.cpp b/src/core/common/Variant.cpp
index 280cba5..e3be395 100644
--- a/src/core/common/Variant.cpp
+++ b/src/core/common/Variant.cpp
@@ -22,11 +22,12 @@
#include "Location.hpp"
#include "Logger.hpp"
+#include "Rtti.hpp"
+#include "RttiBuilder.hpp"
#include "Utils.hpp"
#include "Variant.hpp"
#include "VariantConverter.hpp"
#include "VariantWriter.hpp"
-#include "Rtti.hpp"
namespace ousia {
@@ -188,6 +189,11 @@ Variant::cardinalityType Variant::toCardinality() const
return res.asCardinality();
}
+Rooted<ManagedVariant> Variant::toManaged(Manager &mgr) const
+{
+ return Rooted<ManagedVariant>(new ManagedVariant(mgr, *this));
+}
+
/* Type management */
const Rtti *Variant::getRtti() const
@@ -306,5 +312,10 @@ bool operator!=(const Variant &lhs, const Variant &rhs)
{
return !(lhs == rhs);
}
+
+namespace RttiTypes {
+const Rtti ManagedVariant = RttiBuilder<ousia::ManagedVariant>("Variant");
+}
+
}