summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-09 16:25:26 +0100
committerGitHub <noreply@github.com>2020-11-09 16:25:26 +0100
commit747e349890214fed758192b0d74a11338c26eef8 (patch)
treef39f8016494dda2dd53ee940439488c77347f141
parentf59767e60c41a213d4864daa0dcab5c3ad68db27 (diff)
parent01cce7fcf6a68f268c8a61e93ea4a0d76a775954 (diff)
Merge pull request #15232 from vespa-engine/balder/gc-unused-parameter-to-serialize-interface
Removed unused IFieldBase of Serializer/Deserializer interface.
-rw-r--r--document/src/tests/documentupdatetestcase.cpp22
-rw-r--r--document/src/tests/fieldsettest.cpp2
-rw-r--r--document/src/vespa/document/base/field.cpp6
-rw-r--r--document/src/vespa/document/base/field.h10
-rw-r--r--document/src/vespa/document/base/fieldpath.cpp3
-rw-r--r--document/src/vespa/document/base/fieldpath.h4
-rw-r--r--document/src/vespa/document/fieldvalue/fieldvalue.cpp1
-rw-r--r--document/src/vespa/document/update/fieldupdate.cpp1
-rw-r--r--document/src/vespa/document/update/fieldupdate.h4
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/aggregation.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/fs4hit.cpp31
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/group.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/grouping.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/groupinglevel.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/hit.cpp11
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/hitlist.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/hitsaggregationresult.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/vdshit.cpp18
-rw-r--r--searchlib/src/vespa/searchlib/expression/bucketresultnode.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/expression/bucketresultnode.h8
-rw-r--r--searchlib/src/vespa/searchlib/expression/catserializer.cpp37
-rw-r--r--searchlib/src/vespa/searchlib/expression/catserializer.h30
-rw-r--r--searchlib/src/vespa/searchlib/expression/debugwaitfunctionnode.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/expression/floatbucketresultnode.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/expression/integerbucketresultnode.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/expression/resultnodes.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/expression/resultvector.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/expression/serializer.h19
-rw-r--r--searchlib/src/vespa/searchlib/expression/strcatserializer.cpp14
-rw-r--r--searchlib/src/vespa/searchlib/expression/strcatserializer.h11
-rw-r--r--searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/expression/timestamp.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/expression/zcurve.cpp13
-rw-r--r--searchlib/src/vespa/searchlib/uca/ucafunctionnode.cpp22
-rw-r--r--searchlib/src/vespa/searchlib/uca/ucafunctionnode.h9
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/CMakeLists.txt1
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/asciiserializer.cpp18
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/asciiserializer.h16
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/deserializer.cpp23
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/deserializer.h76
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/deserializer.hpp4
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/fieldbase.cpp9
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/fieldbase.h33
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/identifiable.cpp14
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/identifiable.h7
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/identifiable.hpp20
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/namedobject.cpp5
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/nboserializer.cpp32
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/nboserializer.h34
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/serializer.cpp11
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/serializer.h60
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/serializer.hpp7
54 files changed, 306 insertions, 435 deletions
diff --git a/document/src/tests/documentupdatetestcase.cpp b/document/src/tests/documentupdatetestcase.cpp
index 1863194ab73..5fd62957f65 100644
--- a/document/src/tests/documentupdatetestcase.cpp
+++ b/document/src/tests/documentupdatetestcase.cpp
@@ -467,28 +467,28 @@ TEST(DocumentUpdateTest, testReadSerializedFile)
EXPECT_EQ(*type, upd.getType());
// Verify assign value update.
- FieldUpdate serField = upd.getUpdates()[1];
- EXPECT_EQ(serField.getField().getId(), type->getField("intfield").getId());
+ const FieldUpdate & serField1 = upd.getUpdates()[1];
+ EXPECT_EQ(serField1.getField().getId(), type->getField("intfield").getId());
- const ValueUpdate* serValue = &serField[0];
+ const ValueUpdate* serValue = &serField1[0];
ASSERT_EQ(serValue->getType(), ValueUpdate::Assign);
const AssignValueUpdate* assign(static_cast<const AssignValueUpdate*>(serValue));
EXPECT_EQ(IntFieldValue(4), static_cast<const IntFieldValue&>(assign->getValue()));
// Verify clear field update.
- serField = upd.getUpdates()[2];
- EXPECT_EQ(serField.getField().getId(), type->getField("floatfield").getId());
+ const FieldUpdate & serField2 = upd.getUpdates()[2];
+ EXPECT_EQ(serField2.getField().getId(), type->getField("floatfield").getId());
- serValue = &serField[0];
+ serValue = &serField2[0];
EXPECT_EQ(serValue->getType(), ValueUpdate::Clear);
EXPECT_TRUE(serValue->inherits(ClearValueUpdate::classId));
// Verify add value update.
- serField = upd.getUpdates()[0];
- EXPECT_EQ(serField.getField().getId(), type->getField("arrayoffloatfield").getId());
+ const FieldUpdate & serField3 = upd.getUpdates()[0];
+ EXPECT_EQ(serField3.getField().getId(), type->getField("arrayoffloatfield").getId());
- serValue = &serField[0];
+ serValue = &serField3[0];
ASSERT_EQ(serValue->getType(), ValueUpdate::Add);
const AddValueUpdate* add = static_cast<const AddValueUpdate*>(serValue);
@@ -496,7 +496,7 @@ TEST(DocumentUpdateTest, testReadSerializedFile)
EXPECT_TRUE(value->inherits(FloatFieldValue::classId));
EXPECT_FLOAT_EQ(value->getAsFloat(), 5.00f);
- serValue = &serField[1];
+ serValue = &serField3[1];
ASSERT_EQ(serValue->getType(), ValueUpdate::Add);
add = static_cast<const AddValueUpdate*>(serValue);
@@ -504,7 +504,7 @@ TEST(DocumentUpdateTest, testReadSerializedFile)
EXPECT_TRUE(value->inherits(FloatFieldValue::classId));
EXPECT_FLOAT_EQ(value->getAsFloat(), 4.23f);
- serValue = &serField[2];
+ serValue = &serField3[2];
ASSERT_EQ(serValue->getType(), ValueUpdate::Add);
add = static_cast<const AddValueUpdate*>(serValue);
diff --git a/document/src/tests/fieldsettest.cpp b/document/src/tests/fieldsettest.cpp
index 8f77bfd2c0d..a3b78e6081f 100644
--- a/document/src/tests/fieldsettest.cpp
+++ b/document/src/tests/fieldsettest.cpp
@@ -281,7 +281,7 @@ TEST(FieldCollectionTest, testHash ) {
}
TEST(FieldTest, testSizeOf) {
- EXPECT_EQ(sizeof(Field), 96);
+ EXPECT_EQ(sizeof(Field), 88);
}
} // document
diff --git a/document/src/vespa/document/base/field.cpp b/document/src/vespa/document/base/field.cpp
index fb814fc5f17..806f1543cc7 100644
--- a/document/src/vespa/document/base/field.cpp
+++ b/document/src/vespa/document/base/field.cpp
@@ -35,13 +35,15 @@ Field::Field()
{ }
Field::Field(vespalib::stringref name, int fieldId, const DataType& dataType)
- : FieldBase(name),
+ : FieldSet(),
+ _name(name),
_dataType(&dataType),
_fieldId(fieldId)
{ }
Field::Field(vespalib::stringref name, const DataType& dataType)
- : FieldBase(name),
+ : FieldSet(),
+ _name(name),
_dataType(&dataType),
_fieldId(calculateIdV7())
{ }
diff --git a/document/src/vespa/document/base/field.h b/document/src/vespa/document/base/field.h
index eb772131392..ace5123a106 100644
--- a/document/src/vespa/document/base/field.h
+++ b/document/src/vespa/document/base/field.h
@@ -11,9 +11,8 @@
*/
#pragma once
+#include <vespa/vespalib/stllike/string.h>
#include <vespa/document/fieldset/fieldset.h>
-#include <vespa/vespalib/objects/fieldbase.h>
-#include <set>
#include <vector>
namespace document {
@@ -21,9 +20,9 @@ namespace document {
class FieldValue;
class DataType;
-class Field final : public vespalib::FieldBase,
- public FieldSet
+class Field final : public FieldSet
{
+ vespalib::string _name;
const DataType *_dataType;
int _fieldId;
public:
@@ -92,11 +91,12 @@ public:
// Note that only id is checked for equality.
bool operator==(const Field & other) const noexcept { return (_fieldId == other._fieldId); }
bool operator!=(const Field & other) const noexcept { return (_fieldId != other._fieldId); }
- bool operator<(const Field & other) const noexcept { return (getName() < other.getName()); }
+ bool operator<(const Field & other) const noexcept { return (_name < other._name); }
const DataType &getDataType() const { return *_dataType; }
int getId() const noexcept { return _fieldId; }
+ const vespalib::string & getName() const { return _name; }
vespalib::string toString(bool verbose=false) const;
bool contains(const FieldSet& fields) const override;
diff --git a/document/src/vespa/document/base/fieldpath.cpp b/document/src/vespa/document/base/fieldpath.cpp
index 9b286255518..f8ba5f89727 100644
--- a/document/src/vespa/document/base/fieldpath.cpp
+++ b/document/src/vespa/document/base/fieldpath.cpp
@@ -15,8 +15,7 @@ using vespalib::make_string;
namespace document {
FieldPathEntry::FieldPathEntry(const FieldPathEntry &) = default;
-FieldPathEntry & FieldPathEntry::operator=(const FieldPathEntry & ) = default;
-FieldPathEntry::~FieldPathEntry() { }
+FieldPathEntry::~FieldPathEntry() = default;
FieldPathEntry::FieldPathEntry() :
_type(NONE),
diff --git a/document/src/vespa/document/base/fieldpath.h b/document/src/vespa/document/base/fieldpath.h
index cd246ed78b1..d8b04cb0fbb 100644
--- a/document/src/vespa/document/base/fieldpath.h
+++ b/document/src/vespa/document/base/fieldpath.h
@@ -29,15 +29,11 @@ public:
};
using FieldValueCP = vespalib::CloneablePtr<FieldValue>;
- /**
- Creates a empty field path entry.
- */
FieldPathEntry();
FieldPathEntry(FieldPathEntry &&) = default;
FieldPathEntry & operator=(FieldPathEntry &&) = default;
FieldPathEntry(const FieldPathEntry &);
- FieldPathEntry & operator=(const FieldPathEntry &);
/**
Creates a field path entry for a struct field lookup.
diff --git a/document/src/vespa/document/fieldvalue/fieldvalue.cpp b/document/src/vespa/document/fieldvalue/fieldvalue.cpp
index 7737d03b45a..ad93d1f30f3 100644
--- a/document/src/vespa/document/fieldvalue/fieldvalue.cpp
+++ b/document/src/vespa/document/fieldvalue/fieldvalue.cpp
@@ -19,7 +19,6 @@
#include <vespa/vespalib/util/xmlstream.h>
#include <sstream>
-using vespalib::FieldBase;
using vespalib::nbostream;
using vespalib::IllegalArgumentException;
using namespace vespalib::xml;
diff --git a/document/src/vespa/document/update/fieldupdate.cpp b/document/src/vespa/document/update/fieldupdate.cpp
index 3498d14d96e..d82896e6a60 100644
--- a/document/src/vespa/document/update/fieldupdate.cpp
+++ b/document/src/vespa/document/update/fieldupdate.cpp
@@ -42,7 +42,6 @@ FieldUpdate::FieldUpdate(const DocumentTypeRepo& repo, const DataType & type, nb
}
FieldUpdate::FieldUpdate(const FieldUpdate &) = default;
-FieldUpdate & FieldUpdate::operator = (const FieldUpdate &) = default;
FieldUpdate::~FieldUpdate() = default;
bool
diff --git a/document/src/vespa/document/update/fieldupdate.h b/document/src/vespa/document/update/fieldupdate.h
index 6bd46c3a172..77c142b3070 100644
--- a/document/src/vespa/document/update/fieldupdate.h
+++ b/document/src/vespa/document/update/fieldupdate.h
@@ -33,10 +33,10 @@ public:
FieldUpdate(const Field& field);
FieldUpdate(const FieldUpdate &);
- FieldUpdate & operator = (const FieldUpdate &);
+ FieldUpdate & operator = (const FieldUpdate &) = delete;
FieldUpdate(FieldUpdate &&) = default;
FieldUpdate & operator = (FieldUpdate &&) = default;
- ~FieldUpdate();
+ ~FieldUpdate() override;
/**
* This is a convenience function to construct a field update directly from
diff --git a/searchlib/src/vespa/searchlib/aggregation/aggregation.cpp b/searchlib/src/vespa/searchlib/aggregation/aggregation.cpp
index d6eb3a033a2..62b598d730b 100644
--- a/searchlib/src/vespa/searchlib/aggregation/aggregation.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/aggregation.cpp
@@ -30,8 +30,6 @@ createAndEnsureWanted(const ResultNode & result) {
} // namespace search::aggregation::<unnamed>
-
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
@@ -334,19 +332,17 @@ XorAggregationResult::onReset()
_xor = 0;
}
-static FieldBase _G_tagField("tag");
-
Serializer &
AggregationResult::onSerialize(Serializer & os) const
{
- return (os << *_expressionTree).put(_G_tagField, _tag);
+ return (os << *_expressionTree).put(_tag);
}
Deserializer &
AggregationResult::onDeserialize(Deserializer & is)
{
_expressionTree = std::make_shared<ExpressionTree>();
- return (is >> *_expressionTree).get(_G_tagField, _tag);
+ return (is >> *_expressionTree).get(_tag);
}
void
@@ -453,22 +449,18 @@ MaxAggregationResult::visitMembers(vespalib::ObjectVisitor &visitor) const
visit(visitor, "max", _max);
}
-namespace {
- FieldBase _G_countField("count");
-}
-
Serializer &
AverageAggregationResult::onSerialize(Serializer & os) const
{
AggregationResult::onSerialize(os);
- return os.put(_G_countField, _count) << _sum;
+ return os.put(_count) << _sum;
}
Deserializer &
AverageAggregationResult::onDeserialize(Deserializer & is)
{
AggregationResult::onDeserialize(is);
- return is.get(_G_countField, _count) >> _sum;
+ return is.get(_count) >> _sum;
}
void
diff --git a/searchlib/src/vespa/searchlib/aggregation/fs4hit.cpp b/searchlib/src/vespa/searchlib/aggregation/fs4hit.cpp
index 19125edface..a0f938974a7 100644
--- a/searchlib/src/vespa/searchlib/aggregation/fs4hit.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/fs4hit.cpp
@@ -4,14 +4,15 @@
namespace search::aggregation {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
-static FieldBase _G_pathField("path");
-static FieldBase _G_docIdField("docId");
-static FieldBase _G_globalIdField("globalId");
-static FieldBase _G_distributionKeyField("distributionKey");
+namespace {
+vespalib::string _G_pathField("path");
+vespalib::string _G_docIdField("docId");
+vespalib::string _G_globalIdField("globalId");
+vespalib::string _G_distributionKeyField("distributionKey");
+}
IMPLEMENT_IDENTIFIABLE_NS2(search, aggregation, FS4Hit, Hit);
@@ -19,12 +20,12 @@ Serializer &
FS4Hit::onSerialize(Serializer &os) const
{
Hit::onSerialize(os);
- os.put(_G_pathField, _path);
+ os.put(_path);
const unsigned char * rawGid = _globalId.get();
for (size_t i = 0; i < document::GlobalId::LENGTH; ++i) {
- os.put(_G_globalIdField, rawGid[i]);
+ os.put(rawGid[i]);
}
- os.put(_G_distributionKeyField, _distributionKey);
+ os.put(_distributionKey);
return os;
}
@@ -32,13 +33,13 @@ Deserializer &
FS4Hit::onDeserialize(Deserializer &is)
{
Hit::onDeserialize(is);
- is.get(_G_pathField, _path);
+ is.get(_path);
unsigned char rawGid[document::GlobalId::LENGTH];
for (size_t i = 0; i < document::GlobalId::LENGTH; ++i) {
- is.get(_G_globalIdField, rawGid[i]);
+ is.get(rawGid[i]);
}
_globalId.set(rawGid);
- is.get(_G_distributionKeyField, _distributionKey);
+ is.get(_distributionKey);
return is;
}
@@ -46,10 +47,10 @@ void
FS4Hit::visitMembers(vespalib::ObjectVisitor &visitor) const
{
Hit::visitMembers(visitor);
- visit(visitor, _G_pathField.getName(), _path);
- visit(visitor, _G_docIdField.getName(), _docId);
- visit(visitor, _G_globalIdField.getName(), _globalId.toString());
- visit(visitor, _G_distributionKeyField.getName(), _distributionKey);
+ visit(visitor, _G_pathField, _path);
+ visit(visitor, _G_docIdField, _docId);
+ visit(visitor, _G_globalIdField, _globalId.toString());
+ visit(visitor, _G_distributionKeyField, _distributionKey);
}
}
diff --git a/searchlib/src/vespa/searchlib/aggregation/group.cpp b/searchlib/src/vespa/searchlib/aggregation/group.cpp
index d6d3a8f1deb..d1d68f2593c 100644
--- a/searchlib/src/vespa/searchlib/aggregation/group.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/group.cpp
@@ -16,7 +16,6 @@ namespace search::aggregation {
using search::expression::AggregationRefNode;
using search::expression::ExpressionTree;
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
diff --git a/searchlib/src/vespa/searchlib/aggregation/grouping.cpp b/searchlib/src/vespa/searchlib/aggregation/grouping.cpp
index 4ad8e0089d9..1a2117f642a 100644
--- a/searchlib/src/vespa/searchlib/aggregation/grouping.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/grouping.cpp
@@ -17,7 +17,6 @@
LOG_SETUP(".searchlib.aggregation.grouping");
using namespace search::expression;
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
diff --git a/searchlib/src/vespa/searchlib/aggregation/groupinglevel.cpp b/searchlib/src/vespa/searchlib/aggregation/groupinglevel.cpp
index 2ae1855ab77..460add423fd 100644
--- a/searchlib/src/vespa/searchlib/aggregation/groupinglevel.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/groupinglevel.cpp
@@ -7,7 +7,6 @@
namespace search::aggregation {
using expression::ResultNodeVector;
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
@@ -23,7 +22,7 @@ GroupingLevel::GroupingLevel() :
_grouper(NULL)
{ }
-GroupingLevel::~GroupingLevel() { }
+GroupingLevel::~GroupingLevel() = default;
GroupingLevel::GroupingLevel(const GroupingLevel &) = default;
GroupingLevel & GroupingLevel::operator =(const GroupingLevel &) = default;
diff --git a/searchlib/src/vespa/searchlib/aggregation/hit.cpp b/searchlib/src/vespa/searchlib/aggregation/hit.cpp
index 3f4f46b4a51..e0d63504218 100644
--- a/searchlib/src/vespa/searchlib/aggregation/hit.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/hit.cpp
@@ -4,24 +4,25 @@
namespace search::aggregation {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
IMPLEMENT_IDENTIFIABLE_ABSTRACT_NS2(search, aggregation, Hit, vespalib::Identifiable);
-static FieldBase _G_rankField("rank");
+namespace {
+ const vespalib::string _G_rankField("rank");
+}
Serializer &
Hit::onSerialize(Serializer &os) const
{
- return os.put(_G_rankField, _rank);
+ return os.put(_rank);
}
Deserializer &
Hit::onDeserialize(Deserializer &is)
{
- return is.get(_G_rankField, _rank);
+ return is.get(_rank);
}
int
@@ -34,7 +35,7 @@ Hit::onCmp(const Identifiable &b) const
void
Hit::visitMembers(vespalib::ObjectVisitor &visitor) const
{
- visit(visitor, _G_rankField.getName(), _rank);
+ visit(visitor, _G_rankField, _rank);
}
}
diff --git a/searchlib/src/vespa/searchlib/aggregation/hitlist.cpp b/searchlib/src/vespa/searchlib/aggregation/hitlist.cpp
index 2cc82d59fff..8d6f5ef42b2 100644
--- a/searchlib/src/vespa/searchlib/aggregation/hitlist.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/hitlist.cpp
@@ -7,7 +7,6 @@
namespace search::aggregation {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
using HitCP = vespalib::IdentifiablePtr<Hit>;
diff --git a/searchlib/src/vespa/searchlib/aggregation/hitsaggregationresult.cpp b/searchlib/src/vespa/searchlib/aggregation/hitsaggregationresult.cpp
index afaf270b795..636609790ff 100644
--- a/searchlib/src/vespa/searchlib/aggregation/hitsaggregationresult.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/hitsaggregationresult.cpp
@@ -9,7 +9,6 @@ LOG_SETUP(".searchlib.aggregation.hitsaggregationresult");
namespace search::aggregation {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
diff --git a/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp b/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp
index 67c01b58331..d67a000eb4d 100644
--- a/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp
@@ -7,38 +7,38 @@
namespace search::aggregation {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
-static FieldBase _G_docIdField("docId");
-static FieldBase _G_summaryField("summary");
+namespace {
+ vespalib::string _G_docIdField("docId");
+ vespalib::string _G_summaryField("summary");
+}
IMPLEMENT_IDENTIFIABLE_NS2(search, aggregation, VdsHit, Hit);
-VdsHit::~VdsHit() {
-}
+VdsHit::~VdsHit() = default;
Serializer &
VdsHit::onSerialize(Serializer &os) const
{
Hit::onSerialize(os);
- return os.put(_G_docIdField, _docId) << _summary;
+ return os.put(_docId) << _summary;
}
Deserializer &
VdsHit::onDeserialize(Deserializer &is)
{
Hit::onDeserialize(is);
- return is.get(_G_docIdField, _docId) >> _summary;
+ return is.get(_docId) >> _summary;
}
void
VdsHit::visitMembers(vespalib::ObjectVisitor &visitor) const
{
Hit::visitMembers(visitor);
- visit(visitor, _G_docIdField.getName(), _docId);
- visit(visitor, _G_summaryField.getName(), _summary);
+ visit(visitor, _G_docIdField, _docId);
+ visit(visitor, _G_summaryField, _summary);
}
}
diff --git a/searchlib/src/vespa/searchlib/expression/bucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/bucketresultnode.cpp
index 340d0489d5a..fa89be71680 100644
--- a/searchlib/src/vespa/searchlib/expression/bucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/bucketresultnode.cpp
@@ -1,16 +1,14 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "bucketresultnode.h"
-namespace search {
-namespace expression {
+namespace search::expression {
IMPLEMENT_IDENTIFIABLE_ABSTRACT_NS2(search, expression, BucketResultNode, vespalib::Identifiable);
-vespalib::FieldBase BucketResultNode::_toField("to");
-vespalib::FieldBase BucketResultNode::_fromField("from");
+const vespalib::string BucketResultNode::_toField("to");
+const vespalib::string BucketResultNode::_fromField("from");
}
-}
// this function was added by ../../forcelink.sh
void forcelink_file_searchlib_expression_bucketresultnode() {}
diff --git a/searchlib/src/vespa/searchlib/expression/bucketresultnode.h b/searchlib/src/vespa/searchlib/expression/bucketresultnode.h
index 1b0ec235297..dd815c228ff 100644
--- a/searchlib/src/vespa/searchlib/expression/bucketresultnode.h
+++ b/searchlib/src/vespa/searchlib/expression/bucketresultnode.h
@@ -3,8 +3,7 @@
#include "resultnode.h"
-namespace search {
-namespace expression {
+namespace search::expression {
class BucketResultNode : public ResultNode
{
@@ -12,8 +11,8 @@ public:
DECLARE_ABSTRACT_EXPRESSIONNODE(BucketResultNode);
void set(const ResultNode & rhs) override { (void) rhs; }
protected:
- static vespalib::FieldBase _fromField;
- static vespalib::FieldBase _toField;
+ static const vespalib::string _fromField;
+ static const vespalib::string _toField;
private:
int64_t onGetInteger(size_t index) const override { (void) index; return 0; }
double onGetFloat(size_t index) const override { (void) index; return 0; }
@@ -23,4 +22,3 @@ private:
};
}
-}
diff --git a/searchlib/src/vespa/searchlib/expression/catserializer.cpp b/searchlib/src/vespa/searchlib/expression/catserializer.cpp
index 2d64f3db9f9..bf98dba877f 100644
--- a/searchlib/src/vespa/searchlib/expression/catserializer.cpp
+++ b/searchlib/src/vespa/searchlib/expression/catserializer.cpp
@@ -5,42 +5,36 @@
#include <vespa/vespalib/util/exception.h>
#include <vespa/vespalib/objects/nbostream.h>
-namespace search {
-namespace expression {
+namespace search::expression {
-using vespalib::IFieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
using vespalib::string;
using vespalib::stringref;
-CatSerializer & CatSerializer::put(const IFieldBase & field, stringref value)
+CatSerializer & CatSerializer::put(stringref value)
{
- (void) field;
getStream().write(value.data(), value.size());
return *this;
}
-CatSerializer & CatSerializer::nop(const IFieldBase & field, const void * value)
+CatSerializer & CatSerializer::nop(const void *)
{
- (void) field;
- (void) value;
throw vespalib::Exception("search::expression::CatSerializer can not deserialize anything as it looses information on serialize");
return *this;
}
-CatSerializer & CatSerializer::get(const IFieldBase & field, bool & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, uint8_t & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, uint16_t & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, uint32_t & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, uint64_t & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, double & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, float & value) { return nop(field, &value); }
-CatSerializer & CatSerializer::get(const IFieldBase & field, string & value) { return nop(field, &value); }
+CatSerializer & CatSerializer::get(bool & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(uint8_t & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(uint16_t & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(uint32_t & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(uint64_t & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(double & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(float & value) { return nop(&value); }
+CatSerializer & CatSerializer::get(string & value) { return nop(&value); }
-CatSerializer & CatSerializer::put(const vespalib::IFieldBase & field, const vespalib::Identifiable & value)
+CatSerializer & CatSerializer::put(const vespalib::Identifiable & value)
{
- (void) field;
if (value.inherits(ResultNode::classId)) {
static_cast<const ResultNode &>(value).onSerializeResult(*this);
} else {
@@ -49,17 +43,15 @@ CatSerializer & CatSerializer::put(const vespalib::IFieldBase & field, const ve
return *this;
}
-ResultSerializer & CatSerializer::putResult(const vespalib::IFieldBase & field, const RawResultNode & value)
+ResultSerializer & CatSerializer::putResult(const RawResultNode & value)
{
- (void) field;
vespalib::ConstBufferRef raw(value.get());
getStream().write(raw.c_str(), raw.size());
return *this;
}
-ResultSerializer & CatSerializer::putResult(const vespalib::IFieldBase & field, const ResultNodeVector & value)
+ResultSerializer & CatSerializer::putResult(const ResultNodeVector & value)
{
- (void) field;
size_t sz(value.size());
for (size_t i(0); i < sz; i++) {
value.get(i).serialize(*this);
@@ -73,7 +65,6 @@ void CatSerializer::proxyPut(const ResultNode & value)
}
}
-}
// this function was added by ../../forcelink.sh
void forcelink_file_searchlib_expression_catserializer() {}
diff --git a/searchlib/src/vespa/searchlib/expression/catserializer.h b/searchlib/src/vespa/searchlib/expression/catserializer.h
index cce4af3880b..d0e74a24b1c 100644
--- a/searchlib/src/vespa/searchlib/expression/catserializer.h
+++ b/searchlib/src/vespa/searchlib/expression/catserializer.h
@@ -4,8 +4,7 @@
#include "serializer.h"
#include <vespa/vespalib/objects/nboserializer.h>
-namespace search {
-namespace expression {
+namespace search::expression {
class RawResultNode;
@@ -13,24 +12,23 @@ class CatSerializer : public vespalib::NBOSerializer, public ResultSerializer
{
public:
CatSerializer(vespalib::nbostream & stream) : vespalib::NBOSerializer(stream) { }
- CatSerializer & put(const vespalib::IFieldBase & field, const vespalib::Identifiable & value) override;
- CatSerializer & put(const vespalib::IFieldBase & field, vespalib::stringref value) override;
- ResultSerializer & putResult(const vespalib::IFieldBase & field, const RawResultNode & value) override;
- ResultSerializer & putResult(const vespalib::IFieldBase & field, const ResultNodeVector & value) override;
+ CatSerializer & put(const vespalib::Identifiable & value) override;
+ CatSerializer & put(vespalib::stringref value) override;
+ ResultSerializer & putResult(const RawResultNode & value) override;
+ ResultSerializer & putResult(const ResultNodeVector & value) override;
void proxyPut(const ResultNode & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, bool & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, uint8_t & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, uint16_t & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, uint32_t & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, uint64_t & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, double & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, float & value) override;
- CatSerializer & get(const vespalib::IFieldBase & field, vespalib::string & value) override;
+ CatSerializer & get(bool & value) override;
+ CatSerializer & get(uint8_t & value) override;
+ CatSerializer & get(uint16_t & value) override;
+ CatSerializer & get(uint32_t & value) override;
+ CatSerializer & get(uint64_t & value) override;
+ CatSerializer & get(double & value) override;
+ CatSerializer & get(float & value) override;
+ CatSerializer & get(vespalib::string & value) override;
private:
- CatSerializer & nop(const vespalib::IFieldBase & field, const void * value) __attribute__((noinline));
+ CatSerializer & nop(const void * value) __attribute__((noinline));
};
}
-}
diff --git a/searchlib/src/vespa/searchlib/expression/debugwaitfunctionnode.cpp b/searchlib/src/vespa/searchlib/expression/debugwaitfunctionnode.cpp
index aa1fdd249a7..912e8d3514f 100644
--- a/searchlib/src/vespa/searchlib/expression/debugwaitfunctionnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/debugwaitfunctionnode.cpp
@@ -4,7 +4,6 @@
namespace search::expression {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
using namespace std::chrono;
diff --git a/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp b/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp
index fd722d0676f..07377943e24 100644
--- a/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/documentfieldnode.cpp
@@ -40,7 +40,7 @@ DocumentFieldNode & DocumentFieldNode::operator = (const DocumentFieldNode & rhs
_fieldPath = rhs._fieldPath;
_value = rhs._value;
_fieldName = rhs._fieldName;
- _doc = NULL;
+ _doc = nullptr;
}
return *this;
}
@@ -123,7 +123,7 @@ void DocumentFieldNode::onPrepare(bool preserveAccurateTypes)
}
}
const document::FieldPathEntry & endOfPath(_fieldPath.back());
- if (endOfPath.getFieldValueToSetPtr() != NULL) {
+ if (endOfPath.getFieldValueToSetPtr() != nullptr) {
const FieldValue& fv = endOfPath.getFieldValueToSet();
_value.reset(deduceResultNode(_fieldName, fv, preserveAccurateTypes, nestedMultiValue).release());
if (_value->inherits(ResultNodeVector::classId)) {
@@ -155,7 +155,7 @@ class FieldValue2ResultNode : public ResultNode
{
public:
DECLARE_EXPRESSIONNODE(FieldValue2ResultNode);
- FieldValue2ResultNode(const FieldValue * fv=NULL) : _fv(fv) { }
+ FieldValue2ResultNode(const FieldValue * fv=nullptr) : _fv(fv) { }
int64_t onGetInteger(size_t index) const override { (void) index; return _fv ? _fv->getAsLong() : 0; }
double onGetFloat(size_t index) const override { (void) index; return _fv ? _fv->getAsDouble() : 0; }
ConstBufferRef onGetString(size_t index, BufferRef buf) const override {
@@ -262,8 +262,8 @@ class String2ResultNode : public ResultNode
{
public:
String2ResultNode(vespalib::stringref s) : _s(s) { }
- int64_t onGetInteger(size_t index) const override { (void) index; return strtoul(_s.c_str(), NULL, 0); }
- double onGetFloat(size_t index) const override { (void) index; return vespalib::locale::c::strtod(_s.c_str(), NULL); }
+ int64_t onGetInteger(size_t index) const override { (void) index; return strtoul(_s.c_str(), nullptr, 0); }
+ double onGetFloat(size_t index) const override { (void) index; return vespalib::locale::c::strtod(_s.c_str(), nullptr); }
ConstBufferRef onGetString(size_t index, BufferRef buf) const override { (void) index; (void) buf; return ConstBufferRef(_s.c_str(), _s.size()); }
private:
String2ResultNode * clone() const override { return new String2ResultNode(_s); }
@@ -283,7 +283,9 @@ void GetDocIdNamespaceSpecificFunctionNode::onDoc(const Document & doc)
_value->set(converter);
}
-static const FieldBase _G_valueField("value");
+namespace {
+const vespalib::string _G_valueField("value");
+}
Serializer & GetDocIdNamespaceSpecificFunctionNode::onSerialize(Serializer & os) const
{
@@ -297,7 +299,7 @@ Deserializer & GetDocIdNamespaceSpecificFunctionNode::onDeserialize(Deserializer
void
GetDocIdNamespaceSpecificFunctionNode::visitMembers(vespalib::ObjectVisitor &visitor) const
{
- visit(visitor, _G_valueField.getName(), _value);
+ visit(visitor, _G_valueField, _value);
}
void GetYMUMChecksumFunctionNode::onDoc(const Document & doc)
diff --git a/searchlib/src/vespa/searchlib/expression/floatbucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/floatbucketresultnode.cpp
index 29c7d81eed4..ca7a503da6b 100644
--- a/searchlib/src/vespa/searchlib/expression/floatbucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/floatbucketresultnode.cpp
@@ -60,20 +60,20 @@ int FloatBucketResultNode::contains(const FloatBucketResultNode & b) const
void
FloatBucketResultNode::visitMembers(vespalib::ObjectVisitor &visitor) const
{
- visit(visitor, _fromField.getName(), _from);
- visit(visitor, _toField.getName(), _to);
+ visit(visitor, _fromField, _from);
+ visit(visitor, _toField, _to);
}
vespalib::Serializer &
FloatBucketResultNode::onSerialize(vespalib::Serializer & os) const
{
- return os.put(_fromField, _from).put(_toField, _to);
+ return os.put(_from).put(_to);
}
vespalib::Deserializer &
FloatBucketResultNode::onDeserialize(vespalib::Deserializer & is)
{
- return is.get(_fromField, _from).get(_toField, _to);
+ return is.get(_from).get(_to);
}
}
diff --git a/searchlib/src/vespa/searchlib/expression/integerbucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/integerbucketresultnode.cpp
index b19e62ad244..ee1f2e282f7 100644
--- a/searchlib/src/vespa/searchlib/expression/integerbucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/integerbucketresultnode.cpp
@@ -48,20 +48,20 @@ int IntegerBucketResultNode::contains(const IntegerBucketResultNode & b) const
void
IntegerBucketResultNode::visitMembers(vespalib::ObjectVisitor &visitor) const
{
- visit(visitor, _fromField.getName(), _from);
- visit(visitor, _toField.getName(), _to);
+ visit(visitor, _fromField, _from);
+ visit(visitor, _toField, _to);
}
vespalib::Serializer &
IntegerBucketResultNode::onSerialize(vespalib::Serializer & os) const
{
- return os.put(_fromField, _from).put(_toField, _to);
+ return os.put(_from).put(_to);
}
vespalib::Deserializer &
IntegerBucketResultNode::onDeserialize(vespalib::Deserializer & is)
{
- return is.get(_fromField, _from).get(_toField, _to);
+ return is.get(_from).get(_to);
}
}
diff --git a/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp
index e4715bd9fff..84d108db82f 100644
--- a/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp
@@ -2,8 +2,7 @@
#include "rawbucketresultnode.h"
#include <vespa/vespalib/objects/visit.hpp>
-namespace search {
-namespace expression {
+namespace search::expression {
IMPLEMENT_RESULTNODE(RawBucketResultNode, BucketResultNode);
@@ -41,7 +40,7 @@ RawBucketResultNode::RawBucketResultNode()
_to(new RawResultNode())
{}
-RawBucketResultNode::~RawBucketResultNode() {}
+RawBucketResultNode::~RawBucketResultNode() = default;
int
RawBucketResultNode::onCmp(const Identifiable & rhs) const
@@ -73,8 +72,8 @@ int RawBucketResultNode::contains(const ConstBufferRef & s) const
void
RawBucketResultNode::visitMembers(vespalib::ObjectVisitor &visitor) const
{
- visit(visitor, _fromField.getName(), _from);
- visit(visitor, _toField.getName(), _to);
+ visit(visitor, _fromField, _from);
+ visit(visitor, _toField, _to);
}
vespalib::Serializer &
@@ -94,7 +93,6 @@ RawBucketResultNode::onDeserialize(vespalib::Deserializer & is)
}
}
-}
// this function was added by ../../forcelink.sh
void forcelink_file_searchlib_expression_rawbucketresultnode() {}
diff --git a/searchlib/src/vespa/searchlib/expression/resultnodes.cpp b/searchlib/src/vespa/searchlib/expression/resultnodes.cpp
index 69cad65795f..059153e83a8 100644
--- a/searchlib/src/vespa/searchlib/expression/resultnodes.cpp
+++ b/searchlib/src/vespa/searchlib/expression/resultnodes.cpp
@@ -148,8 +148,8 @@ int PositiveInfinityResultNode::onCmp(const Identifiable & b) const
return 1;
}
-int64_t StringResultNode::onGetInteger(size_t index) const { (void) index; return strtoll(_value.c_str(), NULL, 0); }
-double StringResultNode::onGetFloat(size_t index) const { (void) index; return vespalib::locale::c::strtod(_value.c_str(), NULL); }
+int64_t StringResultNode::onGetInteger(size_t index) const { (void) index; return strtoll(_value.c_str(), nullptr, 0); }
+double StringResultNode::onGetFloat(size_t index) const { (void) index; return vespalib::locale::c::strtod(_value.c_str(), nullptr); }
Serializer &
StringResultNode::onSerialize(Serializer & os) const
{
@@ -366,7 +366,7 @@ Serializer & RawResultNode::onSerialize(Serializer & os) const
ResultSerializer & RawResultNode::onSerializeResult(ResultSerializer & os) const
{
- return os.putResult(getClass(), *this);
+ return os.putResult(*this);
}
int RawResultNode::onCmp(const Identifiable & b) const
@@ -402,7 +402,7 @@ RawResultNode::onDeserialize(Deserializer & is)
ResultDeserializer &
RawResultNode::onDeserializeResult(ResultDeserializer & is)
{
- return is.getResult(getClass(), *this);
+ return is.getResult(*this);
}
void
diff --git a/searchlib/src/vespa/searchlib/expression/resultvector.cpp b/searchlib/src/vespa/searchlib/expression/resultvector.cpp
index f1aed219965..bcbc4ae97e6 100644
--- a/searchlib/src/vespa/searchlib/expression/resultvector.cpp
+++ b/searchlib/src/vespa/searchlib/expression/resultvector.cpp
@@ -29,7 +29,7 @@ GeneralResultNodeVector::find(const ResultNode & key) const
return _v[i].get();
}
}
- return NULL;
+ return nullptr;
}
size_t
@@ -45,13 +45,13 @@ GeneralResultNodeVector::hash() const
ResultSerializer &
ResultNodeVector::onSerializeResult(ResultSerializer & os) const
{
- return os.putResult(getClass(), *this);
+ return os.putResult(*this);
}
ResultDeserializer &
ResultNodeVector::onDeserializeResult(ResultDeserializer & is)
{
- return is.getResult(getClass(), *this);
+ return is.getResult(*this);
}
}
diff --git a/searchlib/src/vespa/searchlib/expression/serializer.h b/searchlib/src/vespa/searchlib/expression/serializer.h
index c0c8a716ef9..3498d8beb41 100644
--- a/searchlib/src/vespa/searchlib/expression/serializer.h
+++ b/searchlib/src/vespa/searchlib/expression/serializer.h
@@ -1,10 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-namespace vespalib { class IFieldBase; }
-
-namespace search {
-namespace expression {
+namespace search::expression {
class RawResultNode;
class ResultNodeVector;
@@ -13,21 +10,19 @@ class ResultNode;
class ResultSerializer
{
public:
- virtual ~ResultSerializer() { }
- virtual ResultSerializer & putResult(const vespalib::IFieldBase & field, const RawResultNode & value) = 0;
- virtual ResultSerializer & putResult(const vespalib::IFieldBase & field, const ResultNodeVector & value) = 0;
+ virtual ~ResultSerializer() = default;
+ virtual ResultSerializer & putResult(const RawResultNode & value) = 0;
+ virtual ResultSerializer & putResult(const ResultNodeVector & value) = 0;
virtual void proxyPut(const ResultNode & value) = 0;
};
class ResultDeserializer
{
public:
- virtual ~ResultDeserializer() { }
- virtual ResultDeserializer & getResult(const vespalib::IFieldBase & field, RawResultNode & value) = 0;
- virtual ResultDeserializer & getResult(const vespalib::IFieldBase & field, ResultNodeVector & value) = 0;
+ virtual ~ResultDeserializer() = default;
+ virtual ResultDeserializer & getResult(RawResultNode & value) = 0;
+ virtual ResultDeserializer & getResult(ResultNodeVector & value) = 0;
virtual void proxyGet(const ResultNode & value) = 0;
};
}
-}
-
diff --git a/searchlib/src/vespa/searchlib/expression/strcatserializer.cpp b/searchlib/src/vespa/searchlib/expression/strcatserializer.cpp
index 9b0a6b5cf77..3057703b25e 100644
--- a/searchlib/src/vespa/searchlib/expression/strcatserializer.cpp
+++ b/searchlib/src/vespa/searchlib/expression/strcatserializer.cpp
@@ -4,17 +4,14 @@
#include "resultvector.h"
#include <vespa/vespalib/stllike/asciistream.h>
-namespace search {
-namespace expression {
+namespace search::expression {
-using vespalib::IFieldBase;
using vespalib::Serializer;
using vespalib::string;
using vespalib::stringref;
-StrCatSerializer & StrCatSerializer::put(const vespalib::IFieldBase & field, const vespalib::Identifiable & value)
+StrCatSerializer & StrCatSerializer::put(const vespalib::Identifiable & value)
{
- (void) field;
if (value.inherits(ResultNode::classId)) {
static_cast<const ResultNode &>(value).onSerializeResult(*this);
} else {
@@ -23,9 +20,8 @@ StrCatSerializer & StrCatSerializer::put(const vespalib::IFieldBase & field, co
return *this;
}
-ResultSerializer & StrCatSerializer::putResult(const vespalib::IFieldBase & field, const ResultNodeVector & value)
+ResultSerializer & StrCatSerializer::putResult(const ResultNodeVector & value)
{
- (void) field;
size_t sz(value.size());
for (size_t i(0); i < sz; i++) {
value.get(i).serialize(*this);
@@ -33,9 +29,8 @@ ResultSerializer & StrCatSerializer::putResult(const vespalib::IFieldBase & fie
return *this;
}
-ResultSerializer & StrCatSerializer::putResult(const vespalib::IFieldBase & field, const RawResultNode & value)
+ResultSerializer & StrCatSerializer::putResult(const RawResultNode & value)
{
- (void) field;
vespalib::ConstBufferRef buf(value.get());
getStream() << stringref(buf.c_str(), buf.size());
return *this;
@@ -47,7 +42,6 @@ void StrCatSerializer::proxyPut(const ResultNode & value)
}
}
-}
// this function was added by ../../forcelink.sh
void forcelink_file_searchlib_expression_strcatserializer() {}
diff --git a/searchlib/src/vespa/searchlib/expression/strcatserializer.h b/searchlib/src/vespa/searchlib/expression/strcatserializer.h
index 21c5afa88b7..01f8adae8b5 100644
--- a/searchlib/src/vespa/searchlib/expression/strcatserializer.h
+++ b/searchlib/src/vespa/searchlib/expression/strcatserializer.h
@@ -4,8 +4,7 @@
#include "serializer.h"
#include <vespa/vespalib/objects/asciiserializer.h>
-namespace search {
-namespace expression {
+namespace search::expression {
class RawResultNode;
@@ -13,12 +12,10 @@ class StrCatSerializer : public vespalib::AsciiSerializer, public ResultSerializ
{
public:
StrCatSerializer(vespalib::asciistream & stream) : vespalib::AsciiSerializer(stream) { }
- StrCatSerializer & put(const vespalib::IFieldBase & field, const vespalib::Identifiable & value) override;
- ResultSerializer & putResult(const vespalib::IFieldBase & field, const ResultNodeVector & value) override;
- ResultSerializer & putResult(const vespalib::IFieldBase & field, const RawResultNode & value) override;
+ StrCatSerializer & put(const vespalib::Identifiable & value) override;
+ ResultSerializer & putResult(const ResultNodeVector & value) override;
+ ResultSerializer & putResult(const RawResultNode & value) override;
void proxyPut(const ResultNode & value) override;
};
}
-}
-
diff --git a/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp
index 9938d1a3d55..581e8d41378 100644
--- a/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp
@@ -75,8 +75,8 @@ int StringBucketResultNode::contains(const char * s) const
void
StringBucketResultNode::visitMembers(vespalib::ObjectVisitor &visitor) const
{
- visit(visitor, _fromField.getName(), _from);
- visit(visitor, _toField.getName(), _to);
+ visit(visitor, _fromField, _from);
+ visit(visitor, _toField, _to);
}
vespalib::Serializer &
diff --git a/searchlib/src/vespa/searchlib/expression/timestamp.cpp b/searchlib/src/vespa/searchlib/expression/timestamp.cpp
index 4ad3add1b6a..1c340923cfd 100644
--- a/searchlib/src/vespa/searchlib/expression/timestamp.cpp
+++ b/searchlib/src/vespa/searchlib/expression/timestamp.cpp
@@ -4,7 +4,6 @@
namespace search::expression {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
@@ -19,7 +18,7 @@ TimeStampFunctionNode::TimeStampFunctionNode(ExpressionNode::UP arg, TimePart ti
_timePart(timePart),
_isGmt(gmt)
{ }
-TimeStampFunctionNode::~TimeStampFunctionNode() {}
+TimeStampFunctionNode::~TimeStampFunctionNode() = default;
TimeStampFunctionNode::TimeStampFunctionNode(const TimeStampFunctionNode & rhs) :
UnaryFunctionNode(rhs),
diff --git a/searchlib/src/vespa/searchlib/expression/zcurve.cpp b/searchlib/src/vespa/searchlib/expression/zcurve.cpp
index e18c5f8ea1c..94738a83208 100644
--- a/searchlib/src/vespa/searchlib/expression/zcurve.cpp
+++ b/searchlib/src/vespa/searchlib/expression/zcurve.cpp
@@ -3,12 +3,10 @@
#include "zcurve.h"
#include <vespa/vespalib/geo/zcurve.h>
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
-namespace search {
-namespace expression {
+namespace search::expression {
IMPLEMENT_EXPRESSIONNODE(ZCurveFunctionNode, UnaryFunctionNode);
@@ -34,11 +32,11 @@ ZCurveFunctionNode & ZCurveFunctionNode::operator = (const ZCurveFunctionNode &
void ZCurveFunctionNode::onPrepareResult()
{
if (getArg().getResult().inherits(ResultNodeVector::classId)) {
- setResultType(std::unique_ptr<ResultNode>(new IntegerResultNodeVector));
- _handler.reset(new MultiValueHandler(*this));
+ setResultType(std::make_unique<IntegerResultNodeVector>());
+ _handler = std::make_unique<MultiValueHandler>(*this);
} else {
- setResultType(std::unique_ptr<ResultNode>(new Int64ResultNode));
- _handler.reset(new SingleValueHandler(*this));
+ setResultType(std::make_unique<Int64ResultNode>());
+ _handler = std::make_unique<SingleValueHandler>(*this);
}
}
@@ -87,7 +85,6 @@ Deserializer & ZCurveFunctionNode::onDeserialize(Deserializer & is)
}
}
-}
// this function was added by ../../forcelink.sh
void forcelink_file_searchlib_expression_zcurve() {}
diff --git a/searchlib/src/vespa/searchlib/uca/ucafunctionnode.cpp b/searchlib/src/vespa/searchlib/uca/ucafunctionnode.cpp
index 34bc63160e6..da8f5c8c462 100644
--- a/searchlib/src/vespa/searchlib/uca/ucafunctionnode.cpp
+++ b/searchlib/src/vespa/searchlib/uca/ucafunctionnode.cpp
@@ -2,22 +2,15 @@
#include "ucafunctionnode.h"
#include "ucaconverter.h"
-namespace search {
-namespace expression {
+namespace search::expression {
-using vespalib::FieldBase;
using vespalib::Serializer;
using vespalib::Deserializer;
IMPLEMENT_EXPRESSIONNODE(UcaFunctionNode, UnaryFunctionNode);
-UcaFunctionNode::UcaFunctionNode()
-{
-}
-
-UcaFunctionNode::~UcaFunctionNode()
-{
-}
+UcaFunctionNode::UcaFunctionNode() = default;
+UcaFunctionNode::~UcaFunctionNode() = default;
UcaFunctionNode::UcaFunctionNode(ExpressionNode::UP arg, const vespalib::string & locale, const vespalib::string & strength) :
UnaryFunctionNode(std::move(arg)),
@@ -51,11 +44,11 @@ UcaFunctionNode & UcaFunctionNode::operator = (const UcaFunctionNode & rhs)
void UcaFunctionNode::onPrepareResult()
{
if (getArg().getResult().inherits(ResultNodeVector::classId)) {
- setResultType(std::unique_ptr<ResultNode>(new RawResultNodeVector));
- _handler.reset(new MultiValueHandler(*this));
+ setResultType(std::make_unique<RawResultNodeVector>());
+ _handler = std::make_unique<MultiValueHandler>(*this);
} else {
- setResultType(std::unique_ptr<ResultNode>(new RawResultNode));
- _handler.reset(new SingleValueHandler(*this));
+ setResultType(std::make_unique<RawResultNode>());
+ _handler = std::make_unique<SingleValueHandler>(*this);
}
}
@@ -108,7 +101,6 @@ Deserializer & UcaFunctionNode::onDeserialize(Deserializer & is)
}
}
-}
// this function was added by ../../forcelink.sh
void forcelink_file_searchlib_expression_ucafunctionnode() {}
diff --git a/searchlib/src/vespa/searchlib/uca/ucafunctionnode.h b/searchlib/src/vespa/searchlib/uca/ucafunctionnode.h
index 7c5e2958f51..10d51a397d5 100644
--- a/searchlib/src/vespa/searchlib/uca/ucafunctionnode.h
+++ b/searchlib/src/vespa/searchlib/uca/ucafunctionnode.h
@@ -7,8 +7,7 @@
#include <vespa/searchlib/expression/resultvector.h>
-namespace search {
-namespace expression {
+namespace search::expression {
class UcaFunctionNode : public UnaryFunctionNode
{
@@ -16,7 +15,7 @@ public:
DECLARE_EXPRESSIONNODE(UcaFunctionNode);
DECLARE_NBO_SERIALIZE;
UcaFunctionNode();
- ~UcaFunctionNode();
+ ~UcaFunctionNode() override;
UcaFunctionNode(ExpressionNode::UP arg, const vespalib::string & locale, const vespalib::string & strength);
UcaFunctionNode(const UcaFunctionNode & rhs);
UcaFunctionNode & operator = (const UcaFunctionNode & rhs);
@@ -26,7 +25,7 @@ private:
class Handler {
public:
Handler(const UcaFunctionNode & uca);
- virtual ~Handler() { }
+ virtual ~Handler() = default;
virtual void handle(const ResultNode & arg) = 0;
protected:
void handleOne(const ResultNode & arg, RawResultNode & result) const;
@@ -56,5 +55,3 @@ private:
};
}
-}
-
diff --git a/staging_vespalib/src/vespa/vespalib/objects/CMakeLists.txt b/staging_vespalib/src/vespa/vespalib/objects/CMakeLists.txt
index f3afda94fe6..5e21426cacd 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/CMakeLists.txt
+++ b/staging_vespalib/src/vespa/vespalib/objects/CMakeLists.txt
@@ -9,7 +9,6 @@ vespa_add_library(staging_vespalib_vespalib_objects OBJECT
visit.cpp
objectpredicate.cpp
objectoperation.cpp
- fieldbase.cpp
nboserializer.cpp
serializer.cpp
deserializer.cpp
diff --git a/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.cpp b/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.cpp
index 698900a8e80..1ec2e5d0bfd 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.cpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.cpp
@@ -1,45 +1,45 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/objects/asciiserializer.h>
+#include "asciiserializer.h"
#include <vespa/vespalib/stllike/asciistream.h>
namespace vespalib {
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, bool value) {
+AsciiSerializer &AsciiSerializer::put(bool value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, uint8_t value) {
+AsciiSerializer &AsciiSerializer::put(uint8_t value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, uint16_t value) {
+AsciiSerializer &AsciiSerializer::put(uint16_t value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, uint32_t value) {
+AsciiSerializer &AsciiSerializer::put(uint32_t value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, uint64_t value) {
+AsciiSerializer &AsciiSerializer::put(uint64_t value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, float value) {
+AsciiSerializer &AsciiSerializer::put(float value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, double value) {
+AsciiSerializer &AsciiSerializer::put(double value) {
_stream << value;
return *this;
}
-AsciiSerializer &AsciiSerializer::put(const IFieldBase &, stringref value) {
+AsciiSerializer &AsciiSerializer::put(stringref value) {
_stream << value;
return *this;
}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.h b/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.h
index 0066c96934e..ee601fb5a9d 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.h
+++ b/staging_vespalib/src/vespa/vespalib/objects/asciiserializer.h
@@ -11,14 +11,14 @@ class asciistream;
class AsciiSerializer : public Serializer {
public:
AsciiSerializer(asciistream &stream) : _stream(stream) { }
- AsciiSerializer &put(const IFieldBase &field, bool value) override;
- AsciiSerializer &put(const IFieldBase &field, uint8_t value) override;
- AsciiSerializer &put(const IFieldBase &field, uint16_t value) override;
- AsciiSerializer &put(const IFieldBase &field, uint32_t value) override;
- AsciiSerializer &put(const IFieldBase &field, uint64_t value) override;
- AsciiSerializer &put(const IFieldBase &field, float value) override;
- AsciiSerializer &put(const IFieldBase &field, double value) override;
- AsciiSerializer &put(const IFieldBase &field, stringref val) override;
+ AsciiSerializer &put(bool value) override;
+ AsciiSerializer &put(uint8_t value) override;
+ AsciiSerializer &put(uint16_t value) override;
+ AsciiSerializer &put(uint32_t value) override;
+ AsciiSerializer &put(uint64_t value) override;
+ AsciiSerializer &put(float value) override;
+ AsciiSerializer &put(double value) override;
+ AsciiSerializer &put(stringref val) override;
const asciistream &getStream() const { return _stream; }
asciistream &getStream() { return _stream; }
diff --git a/staging_vespalib/src/vespa/vespalib/objects/deserializer.cpp b/staging_vespalib/src/vespa/vespalib/objects/deserializer.cpp
index afa04346bc1..9446f198c87 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/deserializer.cpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/deserializer.cpp
@@ -4,43 +4,42 @@
namespace vespalib {
-Deserializer & Deserializer::get(const IFieldBase & field, Identifiable & value)
+Deserializer & Deserializer::get(Identifiable & value)
{
- (void) field;
return value.deserializeDirect(*this);
}
-Deserializer & Deserializer::get(const IFieldBase & field, int8_t & value)
+Deserializer & Deserializer::get(int8_t & value)
{
uint8_t v(0);
- get(field, v);
+ get(v);
value = v;
return *this;
}
-Deserializer & Deserializer::get(const IFieldBase & field, int16_t & value)
+Deserializer & Deserializer::get(int16_t & value)
{
uint16_t v(0);
- get(field, v);
+ get(v);
value = v;
return *this;
}
-Deserializer & Deserializer::get(const IFieldBase & field, int32_t & value)
+Deserializer & Deserializer::get(int32_t & value)
{
uint32_t v(0);
- get(field, v);
+ get(v);
value = v;
return *this;
}
-Deserializer & Deserializer::get(const IFieldBase & field, int64_t & value)
+Deserializer & Deserializer::get(int64_t & value)
{
uint64_t v(0);
- get(field, v);
+ get(v);
value = v;
return *this;
}
-Deserializer & Deserializer::get(const IFieldBase & field, std::string & value)
+Deserializer & Deserializer::get(std::string & value)
{
string v;
- get(field, v);
+ get(v);
value = v;
return *this;
}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/deserializer.h b/staging_vespalib/src/vespa/vespalib/objects/deserializer.h
index f381fa5ffc6..9ebedac69d5 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/deserializer.h
+++ b/staging_vespalib/src/vespa/vespalib/objects/deserializer.h
@@ -1,8 +1,8 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include "fieldbase.h"
#include <vespa/vespalib/util/array.h>
+#include <vespa/vespalib/stllike/string.h>
#include <vector>
#include <cstdint>
@@ -10,51 +10,39 @@ namespace vespalib {
class Identifiable;
-class Deserializer : virtual SerializerCommon
+class Deserializer
{
public:
- virtual ~Deserializer() { }
- virtual Deserializer & get(const IFieldBase & field, bool & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, uint8_t & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, uint16_t & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, uint32_t & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, uint64_t & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, double & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, float & value) = 0;
- virtual Deserializer & get(const IFieldBase & field, string & value) = 0;
-
- virtual Deserializer & get(const IFieldBase & field, Identifiable & value);
- virtual Deserializer & get(const IFieldBase & field, int8_t & value);
- virtual Deserializer & get(const IFieldBase & field, int16_t & value);
- virtual Deserializer & get(const IFieldBase & field, int32_t & value);
- virtual Deserializer & get(const IFieldBase & field, int64_t & value);
-
- uint8_t getBool(const IFieldBase & field) { bool v; get(field, v); return v; }
- uint8_t getUInt8(const IFieldBase & field) { uint8_t v; get(field, v); return v; }
- int8_t getInt8(const IFieldBase & field) { int8_t v; get(field, v); return v; }
- uint16_t getUInt16(const IFieldBase & field) { uint16_t v; get(field, v); return v; }
- int16_t getInt16(const IFieldBase & field) { int16_t v; get(field, v); return v; }
- uint32_t getUInt32(const IFieldBase & field) { uint32_t v; get(field, v); return v; }
- int32_t getInt32(const IFieldBase & field) { int32_t v; get(field, v); return v; }
- uint64_t getUInt64(const IFieldBase & field) { uint64_t v; get(field, v); return v; }
- int64_t getInt64(const IFieldBase & field) { int64_t v; get(field, v); return v; }
- float getFloat(const IFieldBase & field) { float v; get(field, v); return v; }
- double getDouble(const IFieldBase & field) { double v; get(field, v); return v; }
- string getString(const IFieldBase & field) { string v; get(field, v); return v; }
-
- Deserializer & get(const IFieldBase & field, std::string & value);
- Deserializer & operator >> (bool & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (uint8_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (int8_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (uint16_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (int16_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (uint32_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (int32_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (uint64_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (int64_t & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (float & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (double & value) { return get(_unspecifiedField, value); }
- Deserializer & operator >> (string & value) { return get(_unspecifiedField, value); }
+ virtual ~Deserializer() = default;
+ virtual Deserializer & get(bool & value) = 0;
+ virtual Deserializer & get(uint8_t & value) = 0;
+ virtual Deserializer & get(uint16_t & value) = 0;
+ virtual Deserializer & get(uint32_t & value) = 0;
+ virtual Deserializer & get(uint64_t & value) = 0;
+ virtual Deserializer & get(double & value) = 0;
+ virtual Deserializer & get(float & value) = 0;
+ virtual Deserializer & get(string & value) = 0;
+
+ virtual Deserializer & get(Identifiable & value);
+ virtual Deserializer & get(int8_t & value);
+ virtual Deserializer & get(int16_t & value);
+ virtual Deserializer & get(int32_t & value);
+ virtual Deserializer & get(int64_t & value);
+
+
+ Deserializer & get(std::string & value);
+ Deserializer & operator >> (bool & value) { return get(value); }
+ Deserializer & operator >> (uint8_t & value) { return get(value); }
+ Deserializer & operator >> (int8_t & value) { return get(value); }
+ Deserializer & operator >> (uint16_t & value) { return get(value); }
+ Deserializer & operator >> (int16_t & value) { return get(value); }
+ Deserializer & operator >> (uint32_t & value) { return get(value); }
+ Deserializer & operator >> (int32_t & value) { return get(value); }
+ Deserializer & operator >> (uint64_t & value) { return get(value); }
+ Deserializer & operator >> (int64_t & value) { return get(value); }
+ Deserializer & operator >> (float & value) { return get(value); }
+ Deserializer & operator >> (double & value) { return get(value); }
+ Deserializer & operator >> (string & value) { return get(value); }
template <typename T>
Deserializer & operator >> (vespalib::Array<T> & v);
template <typename T>
diff --git a/staging_vespalib/src/vespa/vespalib/objects/deserializer.hpp b/staging_vespalib/src/vespa/vespalib/objects/deserializer.hpp
index f59bff929a9..e324a083597 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/deserializer.hpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/deserializer.hpp
@@ -9,7 +9,7 @@ template <typename T>
Deserializer &
Deserializer::operator >> (vespalib::Array<T> & v) {
uint32_t sz;
- get(_sizeField, sz);
+ get(sz);
v.resize(sz);
for(size_t i(0); i < sz; i++) {
(*this) >> v[i];
@@ -21,7 +21,7 @@ template <typename T>
Deserializer &
Deserializer::operator >> (std::vector<T> & v) {
uint32_t sz;
- get(_sizeField, sz);
+ get(sz);
v.resize(sz);
for(size_t i(0); i < sz; i++) {
(*this) >> v[i];
diff --git a/staging_vespalib/src/vespa/vespalib/objects/fieldbase.cpp b/staging_vespalib/src/vespa/vespalib/objects/fieldbase.cpp
deleted file mode 100644
index a794da8c554..00000000000
--- a/staging_vespalib/src/vespa/vespalib/objects/fieldbase.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include "fieldbase.h"
-
-namespace vespalib {
-
-FieldBase SerializerCommon::_unspecifiedField("unspecified");
-FieldBase SerializerCommon::_sizeField("size");
-
-}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/fieldbase.h b/staging_vespalib/src/vespa/vespalib/objects/fieldbase.h
deleted file mode 100644
index 2de113f8383..00000000000
--- a/staging_vespalib/src/vespa/vespalib/objects/fieldbase.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#pragma once
-
-#include <vespa/vespalib/stllike/string.h>
-
-namespace vespalib {
-
-class IFieldBase
-{
-public:
- virtual ~IFieldBase() = default;
- // Overrides must guarantee that returned reference is zero-terminated.
- virtual stringref getName() const = 0;
-};
-
-class FieldBase : public IFieldBase
-{
-public:
- FieldBase(stringref name) : _name(name) { }
- stringref getName() const final override { return _name; }
-private:
- string _name;
-};
-
-class SerializerCommon
-{
-protected:
- static FieldBase _unspecifiedField;
- static FieldBase _sizeField;
-};
-
-}
-
diff --git a/staging_vespalib/src/vespa/vespalib/objects/identifiable.cpp b/staging_vespalib/src/vespa/vespalib/objects/identifiable.cpp
index 2465d5f9d9b..8040b398c31 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/identifiable.cpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/identifiable.cpp
@@ -94,10 +94,6 @@ Register * _register = nullptr;
}
Identifiable::ILoader * Identifiable::_classLoader = nullptr;
-FieldBase Identifiable::hasObjectField("hasObject");
-FieldBase Identifiable::sizeField("size");
-FieldBase Identifiable::classIdField("classId");
-FieldBase Identifiable::objectField("object");
IMPLEMENT_IDENTIFIABLE(Identifiable, Identifiable);
@@ -155,7 +151,7 @@ bool Identifiable::RuntimeClass::inherits(unsigned cid) const
Serializer & operator << (Serializer & os, const Identifiable & obj)
{
- os.put(Identifiable::classIdField, obj.getClass().id());
+ os.put(obj.getClass().id());
obj.serialize(os);
return os;
}
@@ -177,7 +173,7 @@ nbostream & operator >> (nbostream & is, Identifiable & obj)
Deserializer & operator >> (Deserializer & os, Identifiable & obj)
{
uint32_t cid(0);
- os.get(Identifiable::classIdField, cid);
+ os.get(cid);
if (cid == obj.getClass().id()) {
obj.deserialize(os);
} else {
@@ -193,7 +189,7 @@ Deserializer & operator >> (Deserializer & os, Identifiable & obj)
Identifiable::UP Identifiable::create(Deserializer & is)
{
uint32_t cid(0);
- is.get(classIdField, cid);
+ is.get(cid);
UP obj;
const Identifiable::RuntimeClass *rtc = Identifiable::classFromId(cid);
if (rtc == nullptr) {
@@ -277,12 +273,12 @@ Identifiable::selectMembers(const ObjectPredicate &predicate, ObjectOperation &o
Serializer & Identifiable::serialize(Serializer & os) const
{
- return os.put(objectField, *this);
+ return os.put(*this);
}
Deserializer & Identifiable::deserialize(Deserializer & is)
{
- return is.get(objectField, *this);
+ return is.get(*this);
}
Serializer & Identifiable::onSerialize(Serializer & os) const
diff --git a/staging_vespalib/src/vespa/vespalib/objects/identifiable.h b/staging_vespalib/src/vespa/vespalib/objects/identifiable.h
index e452c35cabe..cf8415c9513 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/identifiable.h
+++ b/staging_vespalib/src/vespa/vespalib/objects/identifiable.h
@@ -158,10 +158,6 @@ class Identifiable {
};
public:
typedef std::unique_ptr<Identifiable> UP;
- static FieldBase hasObjectField;
- static FieldBase sizeField;
- static FieldBase classIdField;
- static FieldBase objectField;
class ILoader
{
public:
@@ -171,7 +167,7 @@ public:
virtual void loadClass(unsigned classId) = 0;
virtual void loadClass(const char * className) = 0;
};
- struct RuntimeClass final : public IFieldBase {
+ struct RuntimeClass {
public:
RuntimeClass(RuntimeInfo * info);
~RuntimeClass();
@@ -186,7 +182,6 @@ public:
bool equal(unsigned cid) const { return id() == cid; }
int compare(const RuntimeClass& other) const { return (id() - other.id()); }
private:
- stringref getName() const override { return stringref(_rt->_name); }
RuntimeInfo * _rt;
};
DECLARE_IDENTIFIABLE_ROOT(Identifiable);
diff --git a/staging_vespalib/src/vespa/vespalib/objects/identifiable.hpp b/staging_vespalib/src/vespa/vespalib/objects/identifiable.hpp
index b1c4a128feb..97e1c7be564 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/identifiable.hpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/identifiable.hpp
@@ -23,7 +23,7 @@ namespace vespalib {
template <typename T>
Serializer & Identifiable::serialize(const T & v, Serializer & os) {
uint32_t sz(v.size());
- os.put(sizeField, sz);
+ os.put(sz);
for(size_t i(0); i < sz; i++) {
v[i].serialize(os);
}
@@ -33,7 +33,7 @@ Serializer & Identifiable::serialize(const T & v, Serializer & os) {
template <typename T>
Deserializer & Identifiable::deserialize(T & v, Deserializer & is) {
uint32_t sz(0);
- is.get(sizeField, sz);
+ is.get(sz);
v.resize(sz);
for(size_t i(0); i < sz; i++) {
v[i].deserialize(is);
@@ -50,7 +50,7 @@ public:
IdentifiablePtr & operator = (IdentifiablePtr &&) noexcept = default;
IdentifiablePtr(const IdentifiablePtr &) = default;
IdentifiablePtr & operator = (const IdentifiablePtr &) = default;
- IdentifiablePtr(T * p=NULL) noexcept : CloneablePtr<T>(p) { }
+ IdentifiablePtr(T * p=nullptr) noexcept : CloneablePtr<T>(p) { }
IdentifiablePtr(std::unique_ptr<T> &&rhs) noexcept
: CloneablePtr<T>(std::move(rhs))
{
@@ -74,15 +74,15 @@ public:
bool operator != (const IdentifiablePtr<T> &rhs) const { return (cmp(rhs) != 0); }
Serializer & serialize(Serializer & os) const {
if (this->get()) {
- os.put(Identifiable::hasObjectField, uint8_t(1)) << *this->get();
+ os.put(uint8_t(1)) << *this->get();
} else {
- os.put(Identifiable::hasObjectField, uint8_t(0));
+ os.put(uint8_t(0));
}
return os;
}
Deserializer & deserialize(Deserializer & is) {
uint8_t hasObject;
- is.get(Identifiable::hasObjectField, hasObject);
+ is.get(hasObject);
if (hasObject) {
this->reset(static_cast<T *>(Identifiable::create(is).release()));
}
@@ -97,7 +97,7 @@ class IdentifiableSharedPtr : public std::shared_ptr<T>
{
public:
IdentifiableSharedPtr(const T &t) : std::shared_ptr<T>(t.clone()) {}
- IdentifiableSharedPtr(T * p=NULL) : std::shared_ptr<T>(p) { }
+ IdentifiableSharedPtr(T * p=nullptr) : std::shared_ptr<T>(p) { }
int cmp(const IdentifiableSharedPtr<T> &rhs) const {
const T *a = this->get();
const T *b = rhs.get();
@@ -111,15 +111,15 @@ public:
}
Serializer & serialize(Serializer & os) const {
if (this->get()) {
- os.put(Identifiable::hasObjectField, uint8_t(1)) << *this->get();
+ os.put(uint8_t(1)) << *this->get();
} else {
- os.put(Identifiable::hasObjectField, uint8_t(0));
+ os.put(uint8_t(0));
}
return os;
}
Deserializer & deserialize(Deserializer & is) {
uint8_t hasObject;
- is.get(Identifiable::hasObjectField, hasObject);
+ is.get(hasObject);
if (hasObject) {
reset(static_cast<T *>(Identifiable::create(is).release()));
}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/namedobject.cpp b/staging_vespalib/src/vespa/vespalib/objects/namedobject.cpp
index e2506a5993a..590e9cbfce0 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/namedobject.cpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/namedobject.cpp
@@ -5,16 +5,15 @@ namespace vespalib {
IMPLEMENT_IDENTIFIABLE_NS(vespalib, NamedObject, Identifiable);
-static FieldBase _G_nameField("name");
Serializer & NamedObject::onSerialize(Serializer & os) const
{
- return os.put(_G_nameField, _name);
+ return os.put(_name);
}
Deserializer & NamedObject::onDeserialize(Deserializer & is)
{
- return is.get(_G_nameField, _name);
+ return is.get(_name);
}
}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/nboserializer.cpp b/staging_vespalib/src/vespa/vespalib/objects/nboserializer.cpp
index e56ca6ca026..2d065038d1d 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/nboserializer.cpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/nboserializer.cpp
@@ -8,83 +8,83 @@ const char * NBOSerializer::peek() const {
return _stream.peek();
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, bool value) {
+NBOSerializer &NBOSerializer::put(bool value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, uint8_t value) {
+NBOSerializer &NBOSerializer::put(uint8_t value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, uint16_t value) {
+NBOSerializer &NBOSerializer::put(uint16_t value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, uint32_t value) {
+NBOSerializer &NBOSerializer::put(uint32_t value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, uint64_t value) {
+NBOSerializer &NBOSerializer::put(uint64_t value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, float value) {
+NBOSerializer &NBOSerializer::put(float value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, double value) {
+NBOSerializer &NBOSerializer::put(double value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::put(const IFieldBase &, stringref value) {
+NBOSerializer &NBOSerializer::put(stringref value) {
_stream << value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, bool & value) {
+NBOSerializer &NBOSerializer::get(bool & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, uint8_t & value) {
+NBOSerializer &NBOSerializer::get(uint8_t & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, uint16_t & value) {
+NBOSerializer &NBOSerializer::get(uint16_t & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, uint32_t & value) {
+NBOSerializer &NBOSerializer::get(uint32_t & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, uint64_t & value) {
+NBOSerializer &NBOSerializer::get(uint64_t & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, double & value) {
+NBOSerializer &NBOSerializer::get(double & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, float & value) {
+NBOSerializer &NBOSerializer::get(float & value) {
_stream >> value;
return *this;
}
-NBOSerializer &NBOSerializer::get(const IFieldBase &, string & value) {
+NBOSerializer &NBOSerializer::get(string & value) {
_stream >> value;
return *this;
}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/nboserializer.h b/staging_vespalib/src/vespa/vespalib/objects/nboserializer.h
index ee75710dbfb..a6c19c3e02d 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/nboserializer.h
+++ b/staging_vespalib/src/vespa/vespalib/objects/nboserializer.h
@@ -11,23 +11,23 @@ class nbostream;
class NBOSerializer : public Serializer, public Deserializer {
public:
NBOSerializer(nbostream &stream) : _stream(stream) { }
- NBOSerializer &put(const IFieldBase &field, bool value) override;
- NBOSerializer &put(const IFieldBase &field, uint8_t value) override;
- NBOSerializer &put(const IFieldBase &field, uint16_t value) override;
- NBOSerializer &put(const IFieldBase &field, uint32_t value) override;
- NBOSerializer &put(const IFieldBase &field, uint64_t value) override;
- NBOSerializer &put(const IFieldBase &field, float value) override;
- NBOSerializer &put(const IFieldBase &field, double value) override;
- NBOSerializer &put(const IFieldBase &field, stringref val) override;
-
- NBOSerializer &get(const IFieldBase &field, bool &value) override;
- NBOSerializer &get(const IFieldBase &field, uint8_t &value) override;
- NBOSerializer &get(const IFieldBase &field, uint16_t &value) override;
- NBOSerializer &get(const IFieldBase &field, uint32_t &value) override;
- NBOSerializer &get(const IFieldBase &field, uint64_t &value) override;
- NBOSerializer &get(const IFieldBase &field, double &value) override;
- NBOSerializer &get(const IFieldBase &field, float &value) override;
- NBOSerializer &get(const IFieldBase &field, string &value) override;
+ NBOSerializer &put(bool value) override;
+ NBOSerializer &put(uint8_t value) override;
+ NBOSerializer &put(uint16_t value) override;
+ NBOSerializer &put(uint32_t value) override;
+ NBOSerializer &put(uint64_t value) override;
+ NBOSerializer &put(float value) override;
+ NBOSerializer &put(double value) override;
+ NBOSerializer &put(stringref val) override;
+
+ NBOSerializer &get(bool &value) override;
+ NBOSerializer &get(uint8_t &value) override;
+ NBOSerializer &get(uint16_t &value) override;
+ NBOSerializer &get(uint32_t &value) override;
+ NBOSerializer &get(uint64_t &value) override;
+ NBOSerializer &get(double &value) override;
+ NBOSerializer &get(float &value) override;
+ NBOSerializer &get(string &value) override;
const char *peek() const;
diff --git a/staging_vespalib/src/vespa/vespalib/objects/serializer.cpp b/staging_vespalib/src/vespa/vespalib/objects/serializer.cpp
index 746ecd4557d..13543ba60ad 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/serializer.cpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/serializer.cpp
@@ -4,15 +4,14 @@
namespace vespalib {
-Serializer & Serializer::put(const IFieldBase & field, const Identifiable & value)
+Serializer & Serializer::put(const Identifiable & value)
{
- (void) field;
return value.serializeDirect(*this);
}
-Serializer & Serializer::put(const IFieldBase & field, int8_t value) { return put(field, static_cast< uint8_t>(value)); }
-Serializer & Serializer::put(const IFieldBase & field, int16_t value) { return put(field, static_cast<uint16_t>(value)); }
-Serializer & Serializer::put(const IFieldBase & field, int32_t value) { return put(field, static_cast<uint32_t>(value)); }
-Serializer & Serializer::put(const IFieldBase & field, int64_t value) { return put(field, static_cast<uint64_t>(value)); }
+Serializer & Serializer::put(int8_t value) { return put(static_cast< uint8_t>(value)); }
+Serializer & Serializer::put(int16_t value) { return put(static_cast<uint16_t>(value)); }
+Serializer & Serializer::put(int32_t value) { return put(static_cast<uint32_t>(value)); }
+Serializer & Serializer::put(int64_t value) { return put(static_cast<uint64_t>(value)); }
}
diff --git a/staging_vespalib/src/vespa/vespalib/objects/serializer.h b/staging_vespalib/src/vespa/vespalib/objects/serializer.h
index 0458903e830..6cbedbdcd86 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/serializer.h
+++ b/staging_vespalib/src/vespa/vespalib/objects/serializer.h
@@ -1,8 +1,8 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include "fieldbase.h"
#include <vespa/vespalib/util/array.h>
+#include <vespa/vespalib/stllike/string.h>
#include <vector>
#include <cstdint>
@@ -10,37 +10,37 @@ namespace vespalib {
class Identifiable;
-class Serializer : virtual SerializerCommon
+class Serializer
{
public:
- virtual ~Serializer() { }
- virtual Serializer & put(const IFieldBase & field, bool value) = 0;
- virtual Serializer & put(const IFieldBase & field, uint8_t value) = 0;
- virtual Serializer & put(const IFieldBase & field, uint16_t value) = 0;
- virtual Serializer & put(const IFieldBase & field, uint32_t value) = 0;
- virtual Serializer & put(const IFieldBase & field, uint64_t value) = 0;
- virtual Serializer & put(const IFieldBase & field, float value) = 0;
- virtual Serializer & put(const IFieldBase & field, double value) = 0;
- virtual Serializer & put(const IFieldBase & field, stringref value) = 0;
-
- virtual Serializer & put(const IFieldBase & field, const Identifiable & value);
- virtual Serializer & put(const IFieldBase & field, int8_t value);
- virtual Serializer & put(const IFieldBase & field, int16_t value);
- virtual Serializer & put(const IFieldBase & field, int32_t value);
- virtual Serializer & put(const IFieldBase & field, int64_t value);
-
- Serializer & operator << (bool value) { return put(_unspecifiedField, value); }
- Serializer & operator << (uint8_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (int8_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (uint16_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (int16_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (uint32_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (int32_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (uint64_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (int64_t value) { return put(_unspecifiedField, value); }
- Serializer & operator << (float value) { return put(_unspecifiedField, value); }
- Serializer & operator << (double value) { return put(_unspecifiedField, value); }
- Serializer & operator << (stringref value) { return put(_unspecifiedField, value); }
+ virtual ~Serializer() = default;
+ virtual Serializer & put(bool value) = 0;
+ virtual Serializer & put(uint8_t value) = 0;
+ virtual Serializer & put(uint16_t value) = 0;
+ virtual Serializer & put(uint32_t value) = 0;
+ virtual Serializer & put(uint64_t value) = 0;
+ virtual Serializer & put(float value) = 0;
+ virtual Serializer & put(double value) = 0;
+ virtual Serializer & put(stringref value) = 0;
+
+ virtual Serializer & put(const Identifiable & value);
+ virtual Serializer & put(int8_t value);
+ virtual Serializer & put(int16_t value);
+ virtual Serializer & put(int32_t value);
+ virtual Serializer & put(int64_t value);
+
+ Serializer & operator << (bool value) { return put(value); }
+ Serializer & operator << (uint8_t value) { return put(value); }
+ Serializer & operator << (int8_t value) { return put(value); }
+ Serializer & operator << (uint16_t value) { return put(value); }
+ Serializer & operator << (int16_t value) { return put(value); }
+ Serializer & operator << (uint32_t value) { return put(value); }
+ Serializer & operator << (int32_t value) { return put(value); }
+ Serializer & operator << (uint64_t value) { return put(value); }
+ Serializer & operator << (int64_t value) { return put(value); }
+ Serializer & operator << (float value) { return put(value); }
+ Serializer & operator << (double value) { return put(value); }
+ Serializer & operator << (stringref value) { return put(value); }
template <typename T>
Serializer & operator << (const vespalib::Array<T> & v);
template <typename T>
diff --git a/staging_vespalib/src/vespa/vespalib/objects/serializer.hpp b/staging_vespalib/src/vespa/vespalib/objects/serializer.hpp
index e428be5a348..cc49f758ae6 100644
--- a/staging_vespalib/src/vespa/vespalib/objects/serializer.hpp
+++ b/staging_vespalib/src/vespa/vespalib/objects/serializer.hpp
@@ -1,10 +1,9 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include <vespa/vespalib/objects/fieldbase.h>
#include <vespa/vespalib/util/array.h>
#include <vector>
-#include <stdint.h>
+#include <cstdint>
namespace vespalib {
@@ -12,7 +11,7 @@ template <typename T>
Serializer &
Serializer::operator << (const vespalib::Array<T> & v) {
uint32_t sz(v.size());
- put(_sizeField, sz);
+ put(sz);
for(size_t i(0); i < sz; i++) {
(*this) << v[i];
}
@@ -22,7 +21,7 @@ template <typename T>
Serializer &
Serializer::operator << (const std::vector<T> & v) {
uint32_t sz(v.size());
- put(_sizeField, sz);
+ put(sz);
for(size_t i(0); i < sz; i++) {
(*this) << v[i];
}