summaryrefslogtreecommitdiffstats
path: root/staging_vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-07 20:38:52 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-09 10:33:49 +0000
commit01cce7fcf6a68f268c8a61e93ea4a0d76a775954 (patch)
tree4a881b9fc4888f02cce5f1d02f9b3897820ba116 /staging_vespalib
parentdc50de961734b229cd4bcb0fb6e515d94df82202 (diff)
Removed unused IFieldBase of Serializer/Deserializer interface.
Many years ago there were a big plan. But it went nowehere. So let us GC it instead of lying around polluting and bloating the code.
Diffstat (limited to 'staging_vespalib')
-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
17 files changed, 151 insertions, 219 deletions
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];
}