summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2017-03-28 09:45:26 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2017-03-28 09:45:26 +0000
commitbf85beecbc790d974dcd031b7adc4d3d7c72f7fb (patch)
tree9df821a807e5d0c49ff08c9e30ddff8f941b5497 /searchlib
parent04843521de1c26ec01e01d6ff926d2704aa821cb (diff)
Rename search::IAttributeSaveTarget::Config to
search::attribute::AttributeHeader.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/attribute/attributefilewriter/attributefilewriter_test.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/attribute/CMakeLists.txt1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attribute_header.cpp60
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attribute_header.h64
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributefilewriter.cpp27
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributefilewriter.h7
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributesaver.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributesaver.h8
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributevector.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributevector.h6
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h133
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multienumattribute.hpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multienumattributesaver.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multienumattributesaver.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.h3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multivalueattributesaverutils.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.h3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.h3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.h3
-rw-r--r--searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.h7
41 files changed, 228 insertions, 220 deletions
diff --git a/searchlib/src/tests/attribute/attributefilewriter/attributefilewriter_test.cpp b/searchlib/src/tests/attribute/attributefilewriter/attributefilewriter_test.cpp
index 57d50ea9537..afba4287424 100644
--- a/searchlib/src/tests/attribute/attributefilewriter/attributefilewriter_test.cpp
+++ b/searchlib/src/tests/attribute/attributefilewriter/attributefilewriter_test.cpp
@@ -7,6 +7,7 @@ LOG_SETUP("attributefilewriter_test");
#include <vespa/vespalib/stllike/string.h>
#include <vespa/searchlib/attribute/attributefilewriter.h>
#include <vespa/searchlib/attribute/attributefilebufferwriter.h>
+#include <vespa/searchlib/attribute/attribute_header.h>
#include <vespa/searchlib/util/fileutil.h>
#include <vespa/searchlib/util/rand48.h>
#include <vespa/searchlib/common/tunefileinfo.h>
@@ -29,18 +30,18 @@ void removeTestFile() { FastOS_File::Delete(testFileName.c_str()); }
struct Fixture {
TuneFileAttributes _tuneFileAttributes;
DummyFileHeaderContext _fileHeaderContext;
- IAttributeSaveTarget::Config _cfg;
+ attribute::AttributeHeader _header;
const vespalib::string _desc;
AttributeFileWriter _writer;
Fixture()
: _tuneFileAttributes(),
_fileHeaderContext(),
- _cfg(),
+ _header(),
_desc("Attribute file sample description"),
_writer(_tuneFileAttributes,
_fileHeaderContext,
- _cfg,
+ _header,
_desc)
{
removeTestFile();
diff --git a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
index e167dc38f22..e06514e3fc0 100644
--- a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
@@ -4,6 +4,7 @@ vespa_add_library(searchlib_attribute OBJECT
address_space_usage.cpp
attribute.cpp
attribute_blueprint_factory.cpp
+ attribute_header.cpp
attribute_weighted_set_blueprint.cpp
attributecontext.cpp
attributefactory.cpp
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_header.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_header.cpp
new file mode 100644
index 00000000000..62a9780095e
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/attribute_header.cpp
@@ -0,0 +1,60 @@
+// Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "attribute_header.h"
+
+namespace search {
+namespace attribute {
+
+AttributeHeader::AttributeHeader()
+ : _fileName(""),
+ _basicType(""),
+ _collectionType(""),
+ _hasMultiValue(false),
+ _hasWeightedSetType(false),
+ _enumerated(false),
+ _predicateParams(),
+ _numDocs(0),
+ _fixedWidth(0),
+ _uniqueValueCount(0),
+ _totalValueCount(0),
+ _createSerialNum(0u),
+ _version(0)
+{
+}
+
+AttributeHeader::AttributeHeader(const vespalib::string &fileName,
+ const vespalib::string &basicType,
+ const vespalib::string &collectionType,
+ const vespalib::string &tensorType,
+ bool multiValue, bool weightedSetType,
+ bool enumerated,
+ const attribute::PersistentPredicateParams &predicateParams,
+ uint32_t numDocs,
+ uint32_t fixedWidth,
+ uint64_t uniqueValueCount,
+ uint64_t totalValueCount,
+ uint64_t createSerialNum,
+ uint32_t version)
+ : _fileName(fileName),
+ _basicType(basicType),
+ _collectionType(collectionType),
+ _tensorType(tensorType),
+ _hasMultiValue(multiValue),
+ _hasWeightedSetType(weightedSetType),
+ _enumerated(enumerated),
+ _predicateParams(predicateParams),
+ _numDocs(numDocs),
+ _fixedWidth(fixedWidth),
+ _uniqueValueCount(uniqueValueCount),
+ _totalValueCount(totalValueCount),
+ _createSerialNum(createSerialNum),
+ _version(version)
+{
+}
+
+AttributeHeader::~AttributeHeader()
+{
+}
+
+} // namespace search::attribute
+} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_header.h b/searchlib/src/vespa/searchlib/attribute/attribute_header.h
new file mode 100644
index 00000000000..629336d0d69
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/attribute_header.h
@@ -0,0 +1,64 @@
+// Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#pragma once
+
+#include <vespa/vespalib/stllike/string.h>
+#include <vespa/searchcommon/attribute/predicate_params.h>
+
+namespace search {
+namespace attribute {
+
+/**
+ * Attribute header class used by actual IAttributeTarget implementations.
+ **/
+class AttributeHeader {
+private:
+ vespalib::string _fileName;
+ vespalib::string _basicType;
+ vespalib::string _collectionType;
+ vespalib::string _tensorType;
+ bool _hasMultiValue;
+ bool _hasWeightedSetType;
+ bool _enumerated;
+ attribute::PersistentPredicateParams _predicateParams;
+ uint32_t _numDocs;
+ uint32_t _fixedWidth;
+ uint64_t _uniqueValueCount;
+ uint64_t _totalValueCount;
+ uint64_t _createSerialNum;
+ uint32_t _version;
+public:
+ AttributeHeader();
+ AttributeHeader(const vespalib::string &fileName,
+ const vespalib::string &basicType,
+ const vespalib::string &collectionType,
+ const vespalib::string &tensorType,
+ bool multiValue, bool weightedSetType,
+ bool enumerated,
+ const attribute::PersistentPredicateParams &predicateParams,
+ uint32_t numDocs,
+ uint32_t fixedWidth,
+ uint64_t uniqueValueCount,
+ uint64_t totalValueCount,
+ uint64_t createSerialNum,
+ uint32_t version);
+ ~AttributeHeader();
+
+ const vespalib::string & getFileName() const { return _fileName; }
+ const vespalib::string & getBasicType() const { return _basicType; }
+ const vespalib::string &getCollectionType() const { return _collectionType; }
+ const vespalib::string &getTensorType() const { return _tensorType; }
+ bool hasMultiValue() const { return _hasMultiValue; }
+ bool hasWeightedSetType() const { return _hasWeightedSetType; }
+ uint32_t getNumDocs() const { return _numDocs; }
+ size_t getFixedWidth() const { return _fixedWidth; }
+ uint64_t getUniqueValueCount(void) const { return _uniqueValueCount; }
+ uint64_t getTotalValueCount(void) const { return _totalValueCount; }
+ bool getEnumerated(void) const { return _enumerated; }
+ uint64_t getCreateSerialNum(void) const { return _createSerialNum; }
+ uint32_t getVersion() const { return _version; }
+ const attribute::PersistentPredicateParams &getPredicateParams() const { return _predicateParams; }
+};
+
+} // namespace search::attribute
+} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp b/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp
index c9a846d47df..ce77c3b8722 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp
@@ -23,13 +23,13 @@ AttributeFileSaveTarget::
AttributeFileSaveTarget(const TuneFileAttributes &tuneFileAttributes,
const FileHeaderContext &fileHeaderContext)
: IAttributeSaveTarget(),
- _datWriter(tuneFileAttributes, fileHeaderContext, _cfg,
+ _datWriter(tuneFileAttributes, fileHeaderContext, _header,
"Attribute vector data file"),
- _idxWriter(tuneFileAttributes, fileHeaderContext, _cfg,
+ _idxWriter(tuneFileAttributes, fileHeaderContext, _header,
"Attribute vector idx file"),
- _weightWriter(tuneFileAttributes, fileHeaderContext, _cfg,
+ _weightWriter(tuneFileAttributes, fileHeaderContext, _header,
"Attribute vector weight file"),
- _udatWriter(tuneFileAttributes, fileHeaderContext, _cfg,
+ _udatWriter(tuneFileAttributes, fileHeaderContext, _header,
"Attribute vector unique data file")
{
}
@@ -40,23 +40,23 @@ AttributeFileSaveTarget::~AttributeFileSaveTarget() {
bool
AttributeFileSaveTarget::setup()
{
- const vespalib::string & baseFileName = _cfg.getFileName();
+ const vespalib::string & baseFileName = _header.getFileName();
vespalib::string datFileName(baseFileName + ".dat");
if (!_datWriter.open(datFileName)) {
return false;
}
- if (_cfg.getEnumerated()) {
+ if (_header.getEnumerated()) {
vespalib::string udatFileName(baseFileName + ".udat");
if (!_udatWriter.open(udatFileName)) {
return false;
}
}
- if (_cfg.hasMultiValue()) {
+ if (_header.hasMultiValue()) {
vespalib::string idxFileName(baseFileName + ".idx");
if (!_idxWriter.open(idxFileName)) {
return false;
}
- if (_cfg.hasWeightedSetType()) {
+ if (_header.hasWeightedSetType()) {
vespalib::string weightFileName(baseFileName + ".weight");
if (!_weightWriter.open(weightFileName)) {
return false;
diff --git a/searchlib/src/vespa/searchlib/attribute/attributefilewriter.cpp b/searchlib/src/vespa/searchlib/attribute/attributefilewriter.cpp
index 53d5a9f7805..e81af876d57 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributefilewriter.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributefilewriter.cpp
@@ -5,6 +5,7 @@
#include <vespa/vespalib/data/fileheader.h>
#include <vespa/searchlib/common/fileheadercontext.h>
#include <vespa/searchlib/common/tunefileinfo.h>
+#include "attribute_header.h"
#include <vespa/fastos/file.h>
#include <vespa/log/log.h>
@@ -96,12 +97,12 @@ FileBackedBufferWriter::onFlush(size_t nowLen) {
AttributeFileWriter::
AttributeFileWriter(const TuneFileAttributes &tuneFileAttributes,
const FileHeaderContext &fileHeaderContext,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const vespalib::string &desc)
: _file(new FastOS_File()),
_tuneFileAttributes(tuneFileAttributes),
_fileHeaderContext(fileHeaderContext),
- _cfg(cfg),
+ _header(header),
_desc(desc),
_fileBitSize(0)
{ }
@@ -146,27 +147,27 @@ void
AttributeFileWriter::addTags(vespalib::GenericHeader &header)
{
typedef vespalib::GenericHeader::Tag Tag;
- header.putTag(Tag("datatype", _cfg.getBasicType()));
- header.putTag(Tag("collectiontype", _cfg.getCollectionType()));
- header.putTag(Tag("uniqueValueCount", _cfg.getUniqueValueCount()));
- header.putTag(Tag("totalValueCount", _cfg.getTotalValueCount()));
- header.putTag(Tag("docIdLimit", _cfg.getNumDocs()));
+ header.putTag(Tag("datatype", _header.getBasicType()));
+ header.putTag(Tag("collectiontype", _header.getCollectionType()));
+ header.putTag(Tag("uniqueValueCount", _header.getUniqueValueCount()));
+ header.putTag(Tag("totalValueCount", _header.getTotalValueCount()));
+ header.putTag(Tag("docIdLimit", _header.getNumDocs()));
header.putTag(Tag("frozen", 0));
header.putTag(Tag("fileBitSize", 0));
- header.putTag(Tag("version", _cfg.getVersion()));
- if (_cfg.getEnumerated()) {
+ header.putTag(Tag("version", _header.getVersion()));
+ if (_header.getEnumerated()) {
header.putTag(Tag("enumerated", 1));
}
- uint64_t createSerialNum = _cfg.getCreateSerialNum();
+ uint64_t createSerialNum = _header.getCreateSerialNum();
if (createSerialNum != 0u) {
header.putTag(Tag("createSerialNum", createSerialNum));
}
- const vespalib::string &tensorType = _cfg.getTensorType();
+ const vespalib::string &tensorType = _header.getTensorType();
if (!tensorType.empty()) {
header.putTag(Tag("tensortype", tensorType));;
}
- if (_cfg.getBasicType() == "predicate") {
- const auto & params = _cfg.getPredicateParams();
+ if (_header.getBasicType() == "predicate") {
+ const auto & params = _header.getPredicateParams();
header.putTag(Tag("predicate.arity", params.arity()));
header.putTag(Tag("predicate.lower_bound", params.lower_bound()));
header.putTag(Tag("predicate.upper_bound", params.upper_bound()));
diff --git a/searchlib/src/vespa/searchlib/attribute/attributefilewriter.h b/searchlib/src/vespa/searchlib/attribute/attributefilewriter.h
index 5693b0be9d2..b431f7b6ae6 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributefilewriter.h
+++ b/searchlib/src/vespa/searchlib/attribute/attributefilewriter.h
@@ -2,8 +2,8 @@
#pragma once
-#include "iattributesavetarget.h"
#include "iattributefilewriter.h"
+#include <vespa/vespalib/stllike/string.h>
class FastOS_FileInterface;
@@ -12,6 +12,7 @@ namespace vespalib { class GenericHeader; }
namespace search {
namespace common { class FileHeaderContext; }
+namespace attribute { class AttributeHeader; }
class TuneFileAttributes;
@@ -24,7 +25,7 @@ class AttributeFileWriter : public IAttributeFileWriter
std::unique_ptr<FastOS_FileInterface> _file;
const TuneFileAttributes &_tuneFileAttributes;
const search::common::FileHeaderContext &_fileHeaderContext;
- const IAttributeSaveTarget::Config &_cfg;
+ const attribute::AttributeHeader &_header;
vespalib::string _desc;
uint64_t _fileBitSize;
@@ -34,7 +35,7 @@ class AttributeFileWriter : public IAttributeFileWriter
public:
AttributeFileWriter(const TuneFileAttributes &tuneFileAttributes,
const search::common::FileHeaderContext & fileHeaderContext,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const vespalib::string &desc);
~AttributeFileWriter();
virtual Buffer allocBuf(size_t size) override;
diff --git a/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp b/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp
index cfc4061d4d5..41166c8b76b 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp
@@ -59,17 +59,17 @@ writeToFile(const TuneFileAttributes &tuneFileAttributes,
const FileHeaderContext &fileHeaderContext)
{
AttributeFileSaveTarget saveTarget(tuneFileAttributes, fileHeaderContext);
- saveTarget.setConfig(_cfg);
+ saveTarget.setHeader(_header);
if (!saveTarget.setup()) {
return false;
}
_datWriter.writeTo(saveTarget.datWriter());
- if (_cfg.getEnumerated()) {
+ if (_header.getEnumerated()) {
_udatWriter.writeTo(saveTarget.udatWriter());
}
- if (_cfg.hasMultiValue()) {
+ if (_header.hasMultiValue()) {
_idxWriter.writeTo(saveTarget.idxWriter());
- if (_cfg.hasWeightedSetType()) {
+ if (_header.hasWeightedSetType()) {
_weightWriter.writeTo(saveTarget.weightWriter());
}
}
diff --git a/searchlib/src/vespa/searchlib/attribute/attributesaver.cpp b/searchlib/src/vespa/searchlib/attribute/attributesaver.cpp
index 4d3649712d3..f00a14127aa 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributesaver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributesaver.cpp
@@ -2,6 +2,7 @@
#include <vespa/fastos/fastos.h>
#include "attributesaver.h"
+#include "iattributesavetarget.h"
using vespalib::GenerationHandler;
@@ -10,9 +11,9 @@ namespace search
{
AttributeSaver::AttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg)
+ const attribute::AttributeHeader &header)
: _guard(std::move(guard)),
- _cfg(cfg)
+ _header(header)
{
}
@@ -25,7 +26,7 @@ AttributeSaver::~AttributeSaver()
bool
AttributeSaver::save(IAttributeSaveTarget &saveTarget)
{
- saveTarget.setConfig(_cfg);
+ saveTarget.setHeader(_header);
if (!saveTarget.setup()) {
return false;
}
diff --git a/searchlib/src/vespa/searchlib/attribute/attributesaver.h b/searchlib/src/vespa/searchlib/attribute/attributesaver.h
index 307239e113b..c9787cd923f 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributesaver.h
+++ b/searchlib/src/vespa/searchlib/attribute/attributesaver.h
@@ -3,11 +3,13 @@
#pragma once
#include <vespa/vespalib/util/generationhandler.h>
-#include "iattributesavetarget.h"
+#include "attribute_header.h"
namespace search
{
+class IAttributeSaveTarget;
+
/*
* Abstract class used to hold data outside attribute vector needed
* during a save operation, e.g. copy of data structure without
@@ -18,11 +20,11 @@ class AttributeSaver
{
private:
vespalib::GenerationHandler::Guard _guard;
- IAttributeSaveTarget::Config _cfg;
+ attribute::AttributeHeader _header;
protected:
AttributeSaver(vespalib::GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg);
+ const attribute::AttributeHeader &header);
virtual bool onSave(IAttributeSaveTarget &saveTarget) = 0;
diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp
index babf0eceb3f..d3fe5345697 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp
@@ -456,7 +456,7 @@ AttributeVector::save(IAttributeSaveTarget &saveTarget)
return saver->save(saveTarget);
}
// New style save not available, use old style save
- saveTarget.setConfig(createSaveTargetConfig());
+ saveTarget.setHeader(createAttributeHeader());
if (!saveTarget.setup()) {
return false;
}
@@ -465,9 +465,9 @@ AttributeVector::save(IAttributeSaveTarget &saveTarget)
return true;
}
-IAttributeSaveTarget::Config
-AttributeVector::createSaveTargetConfig() const {
- return IAttributeSaveTarget::Config(getBaseFileName(),
+attribute::AttributeHeader
+AttributeVector::createAttributeHeader() const {
+ return attribute::AttributeHeader(getBaseFileName(),
getConfig().basicType().asString(),
getConfig().collectionType().asString(),
getConfig().basicType().type() == BasicType::Type::TENSOR
diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.h b/searchlib/src/vespa/searchlib/attribute/attributevector.h
index 64a9cb0adf8..f313c77f581 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributevector.h
+++ b/searchlib/src/vespa/searchlib/attribute/attributevector.h
@@ -3,7 +3,6 @@
#pragma once
#include "address_space_usage.h"
-#include "iattributesavetarget.h"
#include "changevector.h"
#include <vespa/fastlib/text/normwordfolder.h>
#include <vespa/searchcommon/attribute/config.h>
@@ -46,6 +45,7 @@ namespace search {
class AttributeWriteGuard;
class AttributeSaver;
class EnumStoreBase;
+ class IAttributeSaveTarget;
class IDocumentWeightAttribute;
class QueryTermSimple;
class QueryTermBase;
@@ -55,6 +55,7 @@ namespace search {
}
namespace attribute {
+ class AttributeHeader;
class IPostingListSearchContext;
class IPostingListAttributeBase;
class Interlock;
@@ -69,6 +70,7 @@ namespace search {
namespace search {
+
using search::attribute::WeightedType;
using search::attribute::Status;
using document::ArithmeticValueUpdate;
@@ -439,7 +441,7 @@ public:
/** Saves this attribute vector using the given saveTarget **/
bool save(IAttributeSaveTarget & saveTarget);
- IAttributeSaveTarget::Config createSaveTargetConfig() const;
+ attribute::AttributeHeader createAttributeHeader() const;
/** Returns whether this attribute has load data files on disk **/
bool hasLoadData() const;
diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
index b1cd962b190..b59b3aa81d2 100644
--- a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
@@ -7,6 +7,7 @@
#include <vespa/fastlib/io/bufferedfile.h>
#include <vespa/searchlib/attribute/attrvector.h>
#include <vespa/searchlib/util/filekit.h>
+#include "iattributesavetarget.h"
LOG_SETUP(".attrvector");
diff --git a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp
index ab9931a7fbf..e7221c0c401 100644
--- a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp
@@ -7,9 +7,6 @@
LOG_SETUP(".searchlib.attribute.iattributesavetarget");
namespace search {
-IAttributeSaveTarget::Config::~Config() {
-}
-
IAttributeSaveTarget::~IAttributeSaveTarget() {
}
diff --git a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h
index 0d1c02905db..40d02a4b5c9 100644
--- a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h
+++ b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h
@@ -6,7 +6,7 @@
#include <vespa/vespalib/data/databuffer.h>
#include <stdint.h>
#include "iattributefilewriter.h"
-#include <vespa/searchcommon/attribute/predicate_params.h>
+#include "attribute_header.h"
namespace search {
@@ -15,137 +15,14 @@ namespace search {
**/
class IAttributeSaveTarget {
public:
- /**
- * Config class used by actual saveTarget implementations.
- **/
- class Config {
- private:
- vespalib::string _fileName;
- vespalib::string _basicType;
- vespalib::string _collectionType;
- vespalib::string _tensorType;
- bool _hasMultiValue;
- bool _hasWeightedSetType;
- bool _enumerated;
- attribute::PersistentPredicateParams _predicateParams;
- uint32_t _numDocs;
- uint32_t _fixedWidth;
- uint64_t _uniqueValueCount;
- uint64_t _totalValueCount;
- uint64_t _createSerialNum;
- uint32_t _version;
- public:
- Config()
- : _fileName(""),
- _basicType(""),
- _collectionType(""),
- _hasMultiValue(false),
- _hasWeightedSetType(false),
- _enumerated(false),
- _predicateParams(),
- _numDocs(0),
- _fixedWidth(0),
- _uniqueValueCount(0),
- _totalValueCount(0),
- _createSerialNum(0u),
- _version(0)
- {
- }
-
- Config(const vespalib::string &fileName,
- const vespalib::string &basicType,
- const vespalib::string &collectionType,
- const vespalib::string &tensorType,
- bool multiValue, bool weightedSetType,
- bool enumerated,
- const attribute::PersistentPredicateParams &predicateParams,
- uint32_t numDocs,
- uint32_t fixedWidth,
- uint64_t uniqueValueCount,
- uint64_t totalValueCount,
- uint64_t createSerialNum,
- uint32_t version
- )
- : _fileName(fileName),
- _basicType(basicType),
- _collectionType(collectionType),
- _tensorType(tensorType),
- _hasMultiValue(multiValue),
- _hasWeightedSetType(weightedSetType),
- _enumerated(enumerated),
- _predicateParams(predicateParams),
- _numDocs(numDocs),
- _fixedWidth(fixedWidth),
- _uniqueValueCount(uniqueValueCount),
- _totalValueCount(totalValueCount),
- _createSerialNum(createSerialNum),
- _version(version)
- {
- }
- ~Config();
-
- const vespalib::string & getFileName() const { return _fileName; }
-
- const vespalib::string &
- getBasicType() const
- {
- return _basicType;
- }
-
- const vespalib::string &
- getCollectionType() const
- {
- return _collectionType;
- }
-
- const vespalib::string &getTensorType() const {
- return _tensorType;
- }
-
- bool hasMultiValue() const { return _hasMultiValue; }
- bool hasWeightedSetType() const { return _hasWeightedSetType; }
- uint32_t getNumDocs() const { return _numDocs; }
- size_t getFixedWidth() const { return _fixedWidth; }
-
- uint64_t
- getUniqueValueCount(void) const
- {
- return _uniqueValueCount;
- }
-
- uint64_t
- getTotalValueCount(void) const
- {
- return _totalValueCount;
- }
-
- bool
- getEnumerated(void) const
- {
- return _enumerated;
- }
-
- uint64_t
- getCreateSerialNum(void) const
- {
- return _createSerialNum;
- }
-
- uint32_t getVersion() const { return _version; }
- const attribute::PersistentPredicateParams &getPredicateParams() const { return _predicateParams; }
- };
using Buffer = IAttributeFileWriter::Buffer;
protected:
- Config _cfg;
+ attribute::AttributeHeader _header;
public:
- IAttributeSaveTarget() : _cfg() {}
- void setConfig(const Config & cfg) { _cfg = cfg; }
+ IAttributeSaveTarget() : _header() {}
+ void setHeader(const attribute::AttributeHeader & header) { _header = header; }
- bool
- getEnumerated(void) const
- {
- return _cfg.getEnumerated();
- }
+ bool getEnumerated(void) const { return _header.getEnumerated(); }
/**
* Setups this saveTarget before any data is written. Returns true
diff --git a/searchlib/src/vespa/searchlib/attribute/multienumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multienumattribute.hpp
index 712b51f5ea7..ddbca2f0fc8 100644
--- a/searchlib/src/vespa/searchlib/attribute/multienumattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/multienumattribute.hpp
@@ -203,7 +203,7 @@ MultiValueEnumAttribute<B, M>::onInitSave()
vespalib::GenerationHandler::Guard guard(this->getGenerationHandler().
takeGuard());
return std::make_unique<MultiValueEnumAttributeSaver<WeightedIndex>>
- (std::move(guard), this->createSaveTargetConfig(), this->_mvMapping,
+ (std::move(guard), this->createAttributeHeader(), this->_mvMapping,
this->_enumStore);
}
diff --git a/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.cpp b/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.cpp
index 8b876e2833e..76917ee883f 100644
--- a/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.cpp
@@ -73,10 +73,10 @@ public:
template <typename MultiValueT>
MultiValueEnumAttributeSaver<MultiValueT>::
MultiValueEnumAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const MultiValueMapping &mvMapping,
const EnumStoreBase &enumStore)
- : Parent(std::move(guard), cfg, mvMapping),
+ : Parent(std::move(guard), header, mvMapping),
_mvMapping(mvMapping),
_enumSaver(enumStore, true)
{
diff --git a/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.h b/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.h
index fc8f3576165..eab8067b024 100644
--- a/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.h
+++ b/searchlib/src/vespa/searchlib/attribute/multienumattributesaver.h
@@ -28,7 +28,7 @@ class MultiValueEnumAttributeSaver : public MultiValueAttributeSaver
public:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
MultiValueEnumAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const MultiValueMapping &mvMapping,
const EnumStoreBase &enumStore);
virtual ~MultiValueEnumAttributeSaver();
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp
index 5cea78df5b9..d36ccaec995 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp
@@ -189,7 +189,7 @@ MultiValueNumericAttribute<B, M>::onInitSave()
vespalib::GenerationHandler::Guard guard(this->getGenerationHandler().
takeGuard());
return std::make_unique<MultiValueNumericAttributeSaver<MultiValueType>>
- (std::move(guard), this->createSaveTargetConfig(), this->_mvMapping);
+ (std::move(guard), this->createAttributeHeader(), this->_mvMapping);
}
template <typename B, typename M>
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.cpp b/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.cpp
index 147eb18bdef..d2ebd95d9f6 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.cpp
@@ -44,9 +44,9 @@ public:
template <typename MultiValueT>
MultiValueNumericAttributeSaver<MultiValueT>::
MultiValueNumericAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
- const MultiValueMapping &mvMapping)
- : Parent(std::move(guard), cfg, mvMapping),
+ const attribute::AttributeHeader &header,
+ const MultiValueMapping &mvMapping)
+ : Parent(std::move(guard), header, mvMapping),
_mvMapping(mvMapping)
{
}
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.h b/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.h
index 9b786ea5769..a2dd0225541 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.h
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericattributesaver.h
@@ -26,7 +26,7 @@ class MultiValueNumericAttributeSaver : public MultiValueAttributeSaver
public:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
MultiValueNumericAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const MultiValueMapping &mvMapping);
virtual ~MultiValueNumericAttributeSaver();
diff --git a/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.cpp b/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.cpp
index a7d8045443c..0d5a7b465c4 100644
--- a/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.cpp
@@ -4,16 +4,15 @@
#include "multivalueattributesaver.h"
using vespalib::GenerationHandler;
-using search::IAttributeSaveTarget;
namespace search {
MultiValueAttributeSaver::
MultiValueAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const MvMappingBase &mvMapping)
- : AttributeSaver(std::move(guard), cfg),
- _frozenIndices(mvMapping.getRefCopy(cfg.getNumDocs()))
+ : AttributeSaver(std::move(guard), header),
+ _frozenIndices(mvMapping.getRefCopy(header.getNumDocs()))
{
}
diff --git a/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.h b/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.h
index e8b792cbb75..6bf755db143 100644
--- a/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.h
+++ b/searchlib/src/vespa/searchlib/attribute/multivalueattributesaver.h
@@ -3,7 +3,6 @@
#pragma once
#include "attributesaver.h"
-#include "iattributesavetarget.h"
#include "multi_value_mapping.h"
namespace search {
@@ -21,7 +20,7 @@ protected:
public:
MultiValueAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
const MvMappingBase &mvMapping);
virtual ~MultiValueAttributeSaver();
diff --git a/searchlib/src/vespa/searchlib/attribute/multivalueattributesaverutils.h b/searchlib/src/vespa/searchlib/attribute/multivalueattributesaverutils.h
index fe10abfd435..8024d287a0d 100644
--- a/searchlib/src/vespa/searchlib/attribute/multivalueattributesaverutils.h
+++ b/searchlib/src/vespa/searchlib/attribute/multivalueattributesaverutils.h
@@ -2,6 +2,8 @@
#pragma once
+#include "iattributesavetarget.h"
+
namespace search {
namespace multivalueattributesaver {
diff --git a/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp
index 2342c374643..4ce7015fdba 100644
--- a/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/predicate_attribute.cpp
@@ -5,6 +5,7 @@
#include <vespa/document/fieldvalue/predicatefieldvalue.h>
#include <vespa/document/predicate/predicate.h>
#include <vespa/vespalib/data/slime/slime.h>
+#include "iattributesavetarget.h"
#include <vespa/log/log.h>
LOG_SETUP(".predicate_attribute");
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
index 629c7cf5b32..8909b854423 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
@@ -127,7 +127,7 @@ ReferenceAttribute::onInitSave()
takeGuard());
return std::make_unique<ReferenceAttributeSaver>
(std::move(guard),
- createSaveTargetConfig(),
+ createAttributeHeader(),
getIndicesCopy(getCommittedDocIdLimit()),
_store);
}
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.cpp
index fcc1fc11f22..7af9f607451 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.cpp
@@ -3,6 +3,7 @@
#include "reference_attribute_saver.h"
#include <vespa/searchlib/util/bufferwriter.h>
#include <vespa/vespalib/util/array.hpp>
+#include "iattributesavetarget.h"
using vespalib::GenerationHandler;
@@ -14,10 +15,10 @@ namespace attribute {
ReferenceAttributeSaver::
ReferenceAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
IndicesCopyVector &&indices,
const Store &store)
- : AttributeSaver(std::move(guard), cfg),
+ : AttributeSaver(std::move(guard), header),
_indices(std::move(indices)),
_store(store),
_saver(store.getSaver())
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.h b/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.h
index 012356f24f9..b1d4dcf3a79 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.h
+++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute_saver.h
@@ -7,7 +7,6 @@
#include <vespa/searchlib/datastore/unique_store.h>
#include <vespa/searchlib/datastore/unique_store_saver.h>
#include <vespa/searchlib/common/rcuvector.h>
-#include "iattributesavetarget.h"
#include "reference_attribute.h"
namespace search {
@@ -41,7 +40,7 @@ private:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
public:
ReferenceAttributeSaver(vespalib::GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
IndicesCopyVector &&indices,
const Store &store);
diff --git a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp
index 345c7227627..c798351211a 100644
--- a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp
@@ -310,7 +310,7 @@ SingleValueEnumAttribute<B>::onInitSave()
takeGuard());
return std::make_unique<SingleValueEnumAttributeSaver>
(std::move(guard),
- this->createSaveTargetConfig(),
+ this->createAttributeHeader(),
getIndicesCopy(this->getCommittedDocIdLimit()),
this->_enumStore);
}
diff --git a/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.cpp b/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.cpp
index 8cc351e0330..e11ee1dbb87 100644
--- a/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.cpp
@@ -3,6 +3,7 @@
#include "singleenumattributesaver.h"
#include <vespa/searchlib/util/bufferwriter.h>
#include <vespa/vespalib/util/array.hpp>
+#include "iattributesavetarget.h"
using vespalib::GenerationHandler;
@@ -11,10 +12,10 @@ namespace search {
SingleValueEnumAttributeSaver::
SingleValueEnumAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
EnumIndexCopyVector &&indices,
const EnumStoreBase &enumStore)
- : AttributeSaver(std::move(guard), cfg),
+ : AttributeSaver(std::move(guard), header),
_indices(std::move(indices)),
_enumSaver(enumStore, false)
{
diff --git a/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.h b/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.h
index 7e7de3ef84e..b989194e1b0 100644
--- a/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.h
+++ b/searchlib/src/vespa/searchlib/attribute/singleenumattributesaver.h
@@ -3,7 +3,6 @@
#pragma once
#include "attributesaver.h"
-#include "iattributesavetarget.h"
#include "singleenumattribute.h"
#include "enumattributesaver.h"
@@ -23,7 +22,7 @@ private:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
public:
SingleValueEnumAttributeSaver(vespalib::GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
EnumIndexCopyVector &&indices,
const EnumStoreBase &enumStore);
diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp
index cbd4bfe383f..4285c868f24 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp
@@ -197,7 +197,7 @@ SingleValueNumericAttribute<B>::onInitSave()
const uint32_t numDocs(this->getCommittedDocIdLimit());
assert(numDocs <= _data.size());
return std::make_unique<SingleValueNumericAttributeSaver>
- (this->createSaveTargetConfig(), &_data[0], numDocs * sizeof(T));
+ (this->createAttributeHeader(), &_data[0], numDocs * sizeof(T));
}
template <typename B>
diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.cpp b/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.cpp
index 3320dd977d2..fe8cdf1ca42 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.cpp
@@ -2,9 +2,9 @@
#include <vespa/fastos/fastos.h>
#include "singlenumericattributesaver.h"
+#include "iattributesavetarget.h"
using vespalib::GenerationHandler;
-using search::IAttributeSaveTarget;
namespace search {
@@ -17,9 +17,9 @@ const uint32_t MIN_ALIGNMENT = 4096;
SingleValueNumericAttributeSaver::
-SingleValueNumericAttributeSaver(const IAttributeSaveTarget::Config &cfg,
+SingleValueNumericAttributeSaver(const attribute::AttributeHeader &header,
const void *data, size_t size)
- : AttributeSaver(vespalib::GenerationHandler::Guard(), cfg),
+ : AttributeSaver(vespalib::GenerationHandler::Guard(), header),
_buf()
{
_buf = std::make_unique<BufferBuf>(size, MIN_ALIGNMENT);
diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.h b/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.h
index 585e5c49dab..8d8248ae74f 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.h
+++ b/searchlib/src/vespa/searchlib/attribute/singlenumericattributesaver.h
@@ -22,7 +22,7 @@ private:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
public:
- SingleValueNumericAttributeSaver(const IAttributeSaveTarget::Config &cfg,
+ SingleValueNumericAttributeSaver(const attribute::AttributeHeader &header,
const void *data, size_t size);
virtual ~SingleValueNumericAttributeSaver();
diff --git a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp
index 8d75f00c901..83e9d6fdc92 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp
@@ -5,6 +5,7 @@
#include "primitivereader.h"
#include "attributeiterators.hpp"
#include <vespa/searchlib/queryeval/emptysearch.h>
+#include "iattributesavetarget.h"
namespace search {
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp
index 7a395e04c09..731e51abbca 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp
@@ -169,7 +169,7 @@ DenseTensorAttribute::onInitSave()
takeGuard());
return std::make_unique<DenseTensorAttributeSaver>
(std::move(guard),
- this->createSaveTargetConfig(),
+ this->createAttributeHeader(),
getRefCopy(),
_denseTensorStore);
}
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.cpp b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.cpp
index d57d614c82c..7daec1159ca 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.cpp
@@ -4,9 +4,9 @@
#include "dense_tensor_attribute_saver.h"
#include <vespa/searchlib/util/bufferwriter.h>
#include "dense_tensor_store.h"
+#include <vespa/searchlib/attribute/iattributesavetarget.h>
using vespalib::GenerationHandler;
-using search::IAttributeSaveTarget;
namespace search {
@@ -21,10 +21,10 @@ static const uint8_t tensorIsPresent = 1;
DenseTensorAttributeSaver::
DenseTensorAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
- RefCopyVector &&refs,
- const DenseTensorStore &tensorStore)
- : AttributeSaver(std::move(guard), cfg),
+ const attribute::AttributeHeader &header,
+ RefCopyVector &&refs,
+ const DenseTensorStore &tensorStore)
+ : AttributeSaver(std::move(guard), header),
_refs(std::move(refs)),
_tensorStore(tensorStore)
{
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.h b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.h
index 0b76cc9cfad..e297ef8edc6 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.h
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute_saver.h
@@ -3,7 +3,6 @@
#pragma once
#include <vespa/searchlib/attribute/attributesaver.h>
-#include <vespa/searchlib/attribute/iattributesavetarget.h>
#include "tensor_attribute.h"
namespace search {
@@ -27,7 +26,7 @@ private:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
public:
DenseTensorAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
RefCopyVector &&refs,
const DenseTensorStore &tensorStore);
diff --git a/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute.cpp
index 4fe24608b1e..627f2428e5f 100644
--- a/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute.cpp
@@ -103,7 +103,7 @@ GenericTensorAttribute::onInitSave()
takeGuard());
return std::make_unique<GenericTensorAttributeSaver>
(std::move(guard),
- this->createSaveTargetConfig(),
+ this->createAttributeHeader(),
getRefCopy(),
_genericTensorStore);
}
diff --git a/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.cpp b/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.cpp
index ebcec991c73..6c22434afe9 100644
--- a/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.cpp
@@ -4,9 +4,9 @@
#include "generic_tensor_attribute_saver.h"
#include <vespa/searchlib/util/bufferwriter.h>
#include "generic_tensor_store.h"
+#include <vespa/searchlib/attribute/iattributesavetarget.h>
using vespalib::GenerationHandler;
-using search::IAttributeSaveTarget;
namespace search {
@@ -14,10 +14,10 @@ namespace tensor {
GenericTensorAttributeSaver::
GenericTensorAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
+ const attribute::AttributeHeader &header,
RefCopyVector &&refs,
const GenericTensorStore &tensorStore)
- : AttributeSaver(std::move(guard), cfg),
+ : AttributeSaver(std::move(guard), header),
_refs(std::move(refs)),
_tensorStore(tensorStore)
{
diff --git a/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.h b/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.h
index ad9d5550d3a..c351ae573b1 100644
--- a/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.h
+++ b/searchlib/src/vespa/searchlib/tensor/generic_tensor_attribute_saver.h
@@ -3,7 +3,6 @@
#pragma once
#include <vespa/searchlib/attribute/attributesaver.h>
-#include <vespa/searchlib/attribute/iattributesavetarget.h>
#include "tensor_attribute.h"
namespace search {
@@ -27,9 +26,9 @@ private:
virtual bool onSave(IAttributeSaveTarget &saveTarget) override;
public:
GenericTensorAttributeSaver(GenerationHandler::Guard &&guard,
- const IAttributeSaveTarget::Config &cfg,
- RefCopyVector &&refs,
- const GenericTensorStore &tensorStore);
+ const attribute::AttributeHeader &header,
+ RefCopyVector &&refs,
+ const GenericTensorStore &tensorStore);
virtual ~GenericTensorAttributeSaver();
};