summaryrefslogtreecommitdiffstats
path: root/staging_vespalib/src/vespa/vespalib/objects/deserializer.h
diff options
context:
space:
mode:
Diffstat (limited to 'staging_vespalib/src/vespa/vespalib/objects/deserializer.h')
-rw-r--r--staging_vespalib/src/vespa/vespalib/objects/deserializer.h76
1 files changed, 32 insertions, 44 deletions
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>