diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-10 23:17:57 +0100 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2017-02-10 23:17:57 +0100 |
commit | ca33d15e942664f47ea4b7d49c17b38204e1bf91 (patch) | |
tree | 5b352a8bb097028148a4592ab3b5c03e899d6491 /vespalib | |
parent | 77026d390cb95bd203c5a594ecb869a856947751 (diff) |
add insert(symbol name) to APIs
Diffstat (limited to 'vespalib')
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 |