summaryrefslogtreecommitdiff
path: root/src/ValueBase.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ValueBase.cc')
-rw-r--r--src/ValueBase.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ValueBase.cc b/src/ValueBase.cc
index 1e318f01..ddc11f51 100644
--- a/src/ValueBase.cc
+++ b/src/ValueBase.cc
@@ -64,6 +64,11 @@ SharedHandle<String> String::g(const ValueType& string)
return SharedHandle<String>(new String(string));
}
+SharedHandle<String> String::g(const unsigned char* data, size_t length)
+{
+ return SharedHandle<String>(new String(data, length));
+}
+
void String::accept(ValueBaseVisitor& v) const
{
v.visit(*this);
@@ -95,11 +100,21 @@ const SharedHandle<ValueBase>& List::get(size_t index) const
return list_[index];
}
+void List::set(size_t index, const SharedHandle<ValueBase>& v)
+{
+ list_[index] = v;
+}
+
void List::append(const SharedHandle<ValueBase>& v)
{
list_.push_back(v);
}
+void List::append(const String::ValueType& string)
+{
+ list_.push_back(String::g(string));
+}
+
List& List::operator<<(const SharedHandle<ValueBase>& v)
{
list_.push_back(v);