summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-06-06 09:42:40 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-06-07 09:50:23 +0200
commita4e2a5ab0dd234c13152770094a9f7dc9ffb1eb4 (patch)
treeb594084422f03666a74b031f180337d49530835e /document
parentfd196155bc398c1e06dfe3f2756ff0bcf817e891 (diff)
Fieldvalue does not require DataType
Diffstat (limited to 'document')
-rw-r--r--document/src/vespa/document/fieldvalue/fieldvalue.h4
-rw-r--r--document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp16
-rw-r--r--document/src/vespa/document/fieldvalue/predicatefieldvalue.h17
-rw-r--r--document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp1
-rw-r--r--document/src/vespa/document/select/node.h9
-rw-r--r--document/src/vespa/document/select/result.h23
6 files changed, 36 insertions, 34 deletions
diff --git a/document/src/vespa/document/fieldvalue/fieldvalue.h b/document/src/vespa/document/fieldvalue/fieldvalue.h
index 81e207bc31a..998673ddf8d 100644
--- a/document/src/vespa/document/fieldvalue/fieldvalue.h
+++ b/document/src/vespa/document/fieldvalue/fieldvalue.h
@@ -12,10 +12,11 @@
#pragma once
#include "fieldvaluevisitor.h"
-#include <vespa/document/datatype/datatype.h>
#include <vespa/document/util/xmlserializable.h>
#include <vespa/vespalib/util/polymorphicarrays.h>
#include <vespa/vespalib/objects/cloneable.h>
+#include <vespa/vespalib/objects/identifiable.h>
+#include <vespa/document/base/fieldpath.h>
#include <map>
namespace vespalib {
@@ -25,6 +26,7 @@ namespace vespalib {
namespace document {
class ByteBuffer;
+class DataType;
class FieldValue : public vespalib::Identifiable
{
diff --git a/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp b/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp
index 8e98ebc4c4e..8e963f75f5d 100644
--- a/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp
+++ b/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "predicatefieldvalue.h"
+#include <vespa/document/datatype/datatype.h>
#include <vespa/document/predicate/predicate.h>
#include <vespa/document/predicate/predicate_printer.h>
#include <vespa/vespalib/data/slime/inserter.h>
@@ -67,4 +68,19 @@ void PredicateFieldValue::print(std::ostream& out, bool, const std::string&) con
out << PredicatePrinter::print(*_slime) << "\n";
}
+const DataType *
+PredicateFieldValue::getDataType() const {
+ return DataType::PREDICATE;
+}
+
+bool
+PredicateFieldValue::hasChanged() const {
+ return _altered;
+}
+
+FieldValue *
+PredicateFieldValue::clone() const {
+ return new PredicateFieldValue(*this);
+}
+
} // namespace document
diff --git a/document/src/vespa/document/fieldvalue/predicatefieldvalue.h b/document/src/vespa/document/fieldvalue/predicatefieldvalue.h
index b38f9e5dcc1..74dc0d11322 100644
--- a/document/src/vespa/document/fieldvalue/predicatefieldvalue.h
+++ b/document/src/vespa/document/fieldvalue/predicatefieldvalue.h
@@ -2,7 +2,6 @@
#pragma once
-#include <memory>
#include "fieldvalue.h"
namespace vespalib {
@@ -25,20 +24,20 @@ public:
void accept(FieldValueVisitor &visitor) override { visitor.visit(*this); }
void accept(ConstFieldValueVisitor &visitor) const override { visitor.visit(*this); }
- virtual FieldValue *clone() const override { return new PredicateFieldValue(*this); }
- virtual int compare(const FieldValue &rhs) const override;
+ FieldValue *clone() const override;
+ int compare(const FieldValue &rhs) const override;
- virtual void printXml(XmlOutputStream &out) const override;
- virtual void print(std::ostream &out, bool verbose, const std::string &indent) const override;
+ void printXml(XmlOutputStream &out) const override;
+ void print(std::ostream &out, bool verbose, const std::string &indent) const override;
- virtual const DataType *getDataType() const override { return DataType::PREDICATE; }
- virtual bool hasChanged() const override { return _altered; }
+ const DataType *getDataType() const override;
+ bool hasChanged() const override;
const vespalib::Slime &getSlime() const { return *_slime; }
- virtual FieldValue &assign(const FieldValue &rhs) override;
+ FieldValue &assign(const FieldValue &rhs) override;
-DECLARE_IDENTIFIABLE(PredicateFieldValue);
+ DECLARE_IDENTIFIABLE(PredicateFieldValue);
};
} // namespace document
diff --git a/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp b/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp
index 03b7d50c1c1..93ec934968d 100644
--- a/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp
+++ b/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "tensorfieldvalue.h"
+#include <vespa/document/datatype/datatype.h>
#include <vespa/eval/tensor/tensor.h>
#include <ostream>
#include <cassert>
diff --git a/document/src/vespa/document/select/node.h b/document/src/vespa/document/select/node.h
index c56203da76c..6ccc1fa5dec 100644
--- a/document/src/vespa/document/select/node.h
+++ b/document/src/vespa/document/select/node.h
@@ -12,7 +12,6 @@
#pragma once
-#include <string>
#include "resultlist.h"
#include "context.h"
@@ -33,15 +32,11 @@ public:
typedef std::shared_ptr<Node> SP;
Node(const vespalib::stringref & name) : _name(name), _parentheses(false) {}
- virtual ~Node() {}
+ ~Node() override {}
void setParentheses() { _parentheses = true; }
- void
- clearParentheses()
- {
- _parentheses = false;
- }
+ void clearParentheses() { _parentheses = false; }
bool hadParentheses() const { return _parentheses; }
diff --git a/document/src/vespa/document/select/result.h b/document/src/vespa/document/select/result.h
index ae7b0fdcabf..02d8d61700d 100644
--- a/document/src/vespa/document/select/result.h
+++ b/document/src/vespa/document/select/result.h
@@ -19,7 +19,6 @@
#pragma once
-#include <string>
#include <vespa/document/util/printable.h>
namespace document {
@@ -41,16 +40,9 @@ public:
const Result& operator!() const;
static const Result& get(bool b) { return (b ? True : False); }
+ static uint32_t enumRange() { return 3u; }
- static uint32_t
- enumRange(void)
- {
- return 3u;
- }
-
- uint32_t
- toEnum(void) const
- {
+ uint32_t toEnum() const {
if (this == &Result::Invalid)
return 0u;
if (this == &Result::False)
@@ -60,9 +52,7 @@ public:
abort();
}
- static const Result &
- fromEnum(uint32_t val)
- {
+ static const Result &fromEnum(uint32_t val) {
if (val == 0u)
return Result::Invalid;
if (val == 1u)
@@ -74,10 +64,9 @@ public:
private:
Result();
-
- // Singletons are not copyable
- Result(const Result&);
- Result& operator=(const Result&);
+ // Singletons are not copyable
+ Result(const Result&) = delete;
+ Result& operator=(const Result&) = delete;
};
} // select