|
@@ -26,6 +26,7 @@
|
|
|
#include <artis/context/Value.hpp>
|
|
|
|
|
|
#include <string>
|
|
|
+#include <vector>
|
|
|
|
|
|
namespace artis { namespace kernel {
|
|
|
|
|
@@ -104,6 +105,21 @@ public:
|
|
|
} else if (value.is_bool()) {
|
|
|
bool v;
|
|
|
|
|
|
+ value.get_content(v);
|
|
|
+ put(o, v);
|
|
|
+ } else if (value.is_double_vector()) {
|
|
|
+ std::vector < double > v;
|
|
|
+
|
|
|
+ value.get_content(v);
|
|
|
+ put(o, v);
|
|
|
+ } else if (value.is_int_vector()) {
|
|
|
+ std::vector < int > v;
|
|
|
+
|
|
|
+ value.get_content(v);
|
|
|
+ put(o, v);
|
|
|
+ } else if (value.is_bool_vector()) {
|
|
|
+ std::vector < bool > v;
|
|
|
+
|
|
|
value.get_content(v);
|
|
|
put(o, v);
|
|
|
} else {
|
|
@@ -132,6 +148,31 @@ public:
|
|
|
|
|
|
if (q_bool) {
|
|
|
return context::Value(o->*(q_bool->value_));
|
|
|
+ } else {
|
|
|
+ data < T, std::vector < double > >* q_double_v =
|
|
|
+ dynamic_cast < data < T, std::vector <
|
|
|
+ double > >* >(ptr_);
|
|
|
+
|
|
|
+ if (q_double_v) {
|
|
|
+ return context::Value(o->*(q_double_v->value_));
|
|
|
+ } else {
|
|
|
+ data < T, std::vector < int > >* q_int_v =
|
|
|
+ dynamic_cast < data < T, std::vector <
|
|
|
+ int > >* >(ptr_);
|
|
|
+
|
|
|
+ if (q_int_v) {
|
|
|
+ return context::Value(o->*(q_int_v->value_));
|
|
|
+ } else {
|
|
|
+ data < T, std::vector < bool > >* q_bool_v =
|
|
|
+ dynamic_cast < data < T, std::vector <
|
|
|
+ bool > >* >(ptr_);
|
|
|
+
|
|
|
+ if (q_bool_v) {
|
|
|
+ return context::Value(
|
|
|
+ o->*(q_bool_v->value_));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|