summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-02-10 23:17:57 +0100
committerArne H Juul <arnej@yahoo-inc.com>2017-02-10 23:17:57 +0100
commitca33d15e942664f47ea4b7d49c17b38204e1bf91 (patch)
tree5b352a8bb097028148a4592ab3b5c03e899d6491 /vespalib
parent77026d390cb95bd203c5a594ecb869a856947751 (diff)
add insert(symbol name) to APIs
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/array_value.cpp2
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/array_value.h1
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/cursor.h2
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/inserter.cpp4
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/inserter.h5
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/object_value.cpp3
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/object_value.h1
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/value.cpp3
-rw-r--r--vespalib/src/vespa/vespalib/data/slime/value.h1
9 files changed, 21 insertions, 1 deletions
diff --git a/vespalib/src/vespa/vespalib/data/slime/array_value.cpp b/vespalib/src/vespa/vespalib/data/slime/array_value.cpp
index 1d2fccc2f7a..03126e9b725 100644
--- a/vespalib/src/vespa/vespalib/data/slime/array_value.cpp
+++ b/vespalib/src/vespa/vespalib/data/slime/array_value.cpp
@@ -26,6 +26,8 @@ ArrayValue::addObject() {
return addLeaf(ObjectValueFactory(_symbolTable));
}
+Symbol
+ArrayValue::insert(Memory symbol_name) { return _symbolTable.insert(symbol_name); }
} // namespace vespalib::slime
} // namespace vespalib
diff --git a/vespalib/src/vespa/vespalib/data/slime/array_value.h b/vespalib/src/vespa/vespalib/data/slime/array_value.h
index b4f17015ef6..c6489f2a122 100644
--- a/vespalib/src/vespa/vespalib/data/slime/array_value.h
+++ b/vespalib/src/vespa/vespalib/data/slime/array_value.h
@@ -49,6 +49,7 @@ public:
virtual Cursor &addArray();
virtual Cursor &addObject();
+ virtual Symbol insert(Memory symbol_name);
virtual ~ArrayValue() { }
};
diff --git a/vespalib/src/vespa/vespalib/data/slime/cursor.h b/vespalib/src/vespa/vespalib/data/slime/cursor.h
index 0e83fa379d3..1e91105a359 100644
--- a/vespalib/src/vespa/vespalib/data/slime/cursor.h
+++ b/vespalib/src/vespa/vespalib/data/slime/cursor.h
@@ -38,6 +38,8 @@ struct Cursor : public Inspector {
virtual Cursor &setData(Memory name, Memory str) = 0;
virtual Cursor &setArray(Memory name) = 0;
virtual Cursor &setObject(Memory name) = 0;
+
+ virtual Symbol insert(Memory symbol_name) = 0;
};
} // namespace vespalib::slime
diff --git a/vespalib/src/vespa/vespalib/data/slime/inserter.cpp b/vespalib/src/vespa/vespalib/data/slime/inserter.cpp
index 5fb761f785d..4576e548d5d 100644
--- a/vespalib/src/vespa/vespalib/data/slime/inserter.cpp
+++ b/vespalib/src/vespa/vespalib/data/slime/inserter.cpp
@@ -14,6 +14,7 @@ Cursor &SlimeInserter::insertString(Memory value) const { return slime.setString
Cursor &SlimeInserter::insertData(Memory value) const { return slime.setData(value); }
Cursor &SlimeInserter::insertArray() const { return slime.setArray(); }
Cursor &SlimeInserter::insertObject() const { return slime.setObject(); }
+Symbol SlimeInserter::insert(Memory symbol_name) const { return slime.insert(symbol_name); }
Cursor &ArrayInserter::insertNix() const { return cursor.addNix(); }
Cursor &ArrayInserter::insertBool(bool value) const { return cursor.addBool(value); }
@@ -23,6 +24,7 @@ Cursor &ArrayInserter::insertString(Memory value) const { return cursor.addStrin
Cursor &ArrayInserter::insertData(Memory value) const { return cursor.addData(value); }
Cursor &ArrayInserter::insertArray() const { return cursor.addArray(); }
Cursor &ArrayInserter::insertObject() const { return cursor.addObject(); }
+Symbol ArrayInserter::insert(Memory symbol_name) const { return cursor.insert(symbol_name); }
Cursor &ObjectSymbolInserter::insertNix() const { return cursor.setNix(symbol); }
Cursor &ObjectSymbolInserter::insertBool(bool value) const { return cursor.setBool(symbol, value); }
@@ -32,6 +34,7 @@ Cursor &ObjectSymbolInserter::insertString(Memory value) const { return cursor.s
Cursor &ObjectSymbolInserter::insertData(Memory value) const { return cursor.setData(symbol, value); }
Cursor &ObjectSymbolInserter::insertArray() const { return cursor.setArray(symbol); }
Cursor &ObjectSymbolInserter::insertObject() const { return cursor.setObject(symbol); }
+Symbol ObjectSymbolInserter::insert(Memory symbol_name) const { return cursor.insert(symbol_name); }
Cursor &ObjectInserter::insertNix() const { return cursor.setNix(name); }
Cursor &ObjectInserter::insertBool(bool value) const { return cursor.setBool(name, value); }
@@ -41,6 +44,7 @@ Cursor &ObjectInserter::insertString(Memory value) const { return cursor.setStri
Cursor &ObjectInserter::insertData(Memory value) const { return cursor.setData(name, value); }
Cursor &ObjectInserter::insertArray() const { return cursor.setArray(name); }
Cursor &ObjectInserter::insertObject() const { return cursor.setObject(name); }
+Symbol ObjectInserter::insert(Memory symbol_name) const { return cursor.insert(symbol_name); }
} // namespace slime
} // namespace vespalib
diff --git a/vespalib/src/vespa/vespalib/data/slime/inserter.h b/vespalib/src/vespa/vespalib/data/slime/inserter.h
index 18b2e900e39..36a48eba55d 100644
--- a/vespalib/src/vespa/vespalib/data/slime/inserter.h
+++ b/vespalib/src/vespa/vespalib/data/slime/inserter.h
@@ -29,6 +29,7 @@ struct Inserter {
virtual Cursor &insertData(Memory value) const = 0;
virtual Cursor &insertArray() const = 0;
virtual Cursor &insertObject() const = 0;
+ virtual Symbol insert(Memory symbol_name) const = 0;
virtual ~Inserter() {}
};
@@ -46,6 +47,7 @@ struct SlimeInserter : Inserter {
virtual Cursor &insertData(Memory value) const;
virtual Cursor &insertArray() const;
virtual Cursor &insertObject() const;
+ virtual Symbol insert(Memory symbol_name) const;
};
struct ArrayInserter : Inserter {
@@ -60,6 +62,7 @@ struct ArrayInserter : Inserter {
virtual Cursor &insertData(Memory value) const;
virtual Cursor &insertArray() const;
virtual Cursor &insertObject() const;
+ virtual Symbol insert(Memory symbol_name) const;
};
struct ObjectSymbolInserter : Inserter {
@@ -75,6 +78,7 @@ struct ObjectSymbolInserter : Inserter {
virtual Cursor &insertData(Memory value) const;
virtual Cursor &insertArray() const;
virtual Cursor &insertObject() const;
+ virtual Symbol insert(Memory symbol_name) const;
};
struct ObjectInserter : Inserter {
@@ -90,6 +94,7 @@ struct ObjectInserter : Inserter {
virtual Cursor &insertData(Memory value) const;
virtual Cursor &insertArray() const;
virtual Cursor &insertObject() const;
+ virtual Symbol insert(Memory symbol_name) const;
};
} // namespace slime
diff --git a/vespalib/src/vespa/vespalib/data/slime/object_value.cpp b/vespalib/src/vespa/vespalib/data/slime/object_value.cpp
index 515be5c8808..9548cb1f546 100644
--- a/vespalib/src/vespa/vespalib/data/slime/object_value.cpp
+++ b/vespalib/src/vespa/vespalib/data/slime/object_value.cpp
@@ -73,7 +73,8 @@ ObjectValue::setObject(Memory name) {
return setLeaf(name, ObjectValueFactory(_symbolTable));
}
-
+Symbol
+ObjectValue::insert(Memory symbol_name) { return _symbolTable.insert(symbol_name); }
} // namespace vespalib::slime
} // namespace vespalib
diff --git a/vespalib/src/vespa/vespalib/data/slime/object_value.h b/vespalib/src/vespa/vespalib/data/slime/object_value.h
index 039bc33d13c..8ab81bfcf60 100644
--- a/vespalib/src/vespa/vespalib/data/slime/object_value.h
+++ b/vespalib/src/vespa/vespalib/data/slime/object_value.h
@@ -79,6 +79,7 @@ public:
virtual Cursor &setArray(Memory name);
virtual Cursor &setObject(Memory name);
+ virtual Symbol insert(Memory symbol_name);
virtual ~ObjectValue() { }
};
diff --git a/vespalib/src/vespa/vespalib/data/slime/value.cpp b/vespalib/src/vespa/vespalib/data/slime/value.cpp
index 3bc08c2bb3e..804a0fc4b63 100644
--- a/vespalib/src/vespa/vespalib/data/slime/value.cpp
+++ b/vespalib/src/vespa/vespalib/data/slime/value.cpp
@@ -137,5 +137,8 @@ Value::setArray(Memory) { return *NixValue::invalid(); }
Cursor &
Value::setObject(Memory) { return *NixValue::invalid(); }
+Symbol
+Value::insert(Memory) { return Symbol(); }
+
} // namespace vespalib::slime
} // namespace vespalib
diff --git a/vespalib/src/vespa/vespalib/data/slime/value.h b/vespalib/src/vespa/vespalib/data/slime/value.h
index 7ed2d51ffa1..51564d99472 100644
--- a/vespalib/src/vespa/vespalib/data/slime/value.h
+++ b/vespalib/src/vespa/vespalib/data/slime/value.h
@@ -78,6 +78,7 @@ public:
virtual Cursor &setArray(Memory name);
virtual Cursor &setObject(Memory name);
+ virtual Symbol insert(Memory symbol_name);
};
} // namespace vespalib::slime