summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp18
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h8
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h7
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h2
-rw-r--r--searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp4
-rw-r--r--searchsummary/src/tests/docsummary/positionsdfw_test.cpp6
-rw-r--r--searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.cpp44
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.h7
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.h6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.h4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/idocsumenvironment.h4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h5
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp7
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h5
-rw-r--r--searchsummary/src/vespa/searchsummary/test/mock_state_callback.h4
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp14
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h6
32 files changed, 91 insertions, 102 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp
index 7b4db47f585..cb541c2836d 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp
@@ -103,7 +103,7 @@ DocsumContext::createSlimeReply()
DocsumContext::DocsumContext(const DocsumRequest & request, IDocsumWriter & docsumWriter,
IDocsumStore & docsumStore, std::shared_ptr<Matcher> matcher,
ISearchContext & searchCtx, IAttributeContext & attrCtx,
- IAttributeManager & attrMgr, SessionManager & sessionMgr) :
+ const IAttributeManager & attrMgr, SessionManager & sessionMgr) :
_request(request),
_docsumWriter(docsumWriter),
_docsumStore(docsumStore),
@@ -124,24 +124,24 @@ DocsumContext::getDocsums()
}
void
-DocsumContext::FillSummaryFeatures(search::docsummary::GetDocsumsState * state, search::docsummary::IDocsumEnvironment *)
+DocsumContext::FillSummaryFeatures(search::docsummary::GetDocsumsState& state)
{
- assert(&_docsumState == state);
+ assert(&_docsumState == &state);
if (_matcher->canProduceSummaryFeatures()) {
- state->_summaryFeatures = _matcher->getSummaryFeatures(_request, _searchCtx, _attrCtx, _sessionMgr);
+ state._summaryFeatures = _matcher->getSummaryFeatures(_request, _searchCtx, _attrCtx, _sessionMgr);
}
- state->_summaryFeaturesCached = false;
+ state._summaryFeaturesCached = false;
}
void
-DocsumContext::FillRankFeatures(search::docsummary::GetDocsumsState * state, search::docsummary::IDocsumEnvironment *)
+DocsumContext::FillRankFeatures(search::docsummary::GetDocsumsState& state)
{
- assert(&_docsumState == state);
+ assert(&_docsumState == &state);
// check if we are allowed to run
- if ( ! state->_args.dumpFeatures()) {
+ if ( ! state._args.dumpFeatures()) {
return;
}
- state->_rankFeatures = _matcher->getRankFeatures(_request, _searchCtx, _attrCtx, _sessionMgr);
+ state._rankFeatures = _matcher->getRankFeatures(_request, _searchCtx, _attrCtx, _sessionMgr);
}
std::unique_ptr<MatchingElements>
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h
index 958e19f9bed..5c1db91f05d 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.h
@@ -27,7 +27,7 @@ private:
std::shared_ptr<matching::Matcher> _matcher;
matching::ISearchContext & _searchCtx;
search::attribute::IAttributeContext & _attrCtx;
- search::IAttributeManager & _attrMgr;
+ const search::IAttributeManager & _attrMgr;
search::docsummary::GetDocsumsState _docsumState;
matching::SessionManager & _sessionMgr;
@@ -43,14 +43,14 @@ public:
std::shared_ptr<matching::Matcher> matcher,
matching::ISearchContext & searchCtx,
search::attribute::IAttributeContext & attrCtx,
- search::IAttributeManager & attrMgr,
+ const search::IAttributeManager & attrMgr,
matching::SessionManager & sessionMgr);
search::engine::DocsumReply::UP getDocsums();
// Implements GetDocsumsStateCallback
- void FillSummaryFeatures(search::docsummary::GetDocsumsState * state, search::docsummary::IDocsumEnvironment * env) override;
- void FillRankFeatures(search::docsummary::GetDocsumsState * state, search::docsummary::IDocsumEnvironment * env) override;
+ void FillSummaryFeatures(search::docsummary::GetDocsumsState& state) override;
+ void FillRankFeatures(search::docsummary::GetDocsumsState& state) override;
std::unique_ptr<search::MatchingElements> fill_matching_elements(const search::MatchingElementsFields &fields) override;
};
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h b/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h
index e3c4705104f..946c45feb4b 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/isummarymanager.h
@@ -31,16 +31,11 @@ public:
typedef std::unique_ptr<ISummarySetup> UP;
typedef std::shared_ptr<ISummarySetup> SP;
- virtual ~ISummarySetup() {}
+ ~ISummarySetup() override = default;
virtual search::docsummary::IDocsumWriter &getDocsumWriter() const = 0;
virtual const search::docsummary::ResultConfig &getResultConfig() = 0;
virtual search::docsummary::IDocsumStore::UP createDocsumStore() = 0;
-
- // Inherit doc from IDocsumEnvironment
- virtual search::IAttributeManager *getAttributeManager() override = 0;
- virtual vespalib::string lookupIndex(const vespalib::string & s) const override = 0;
- virtual juniper::Juniper *getJuniper() override = 0;
};
typedef std::unique_ptr<ISummaryManager> UP;
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
index f398898ebb8..3e3a3529e46 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
@@ -104,7 +104,7 @@ SummarySetup(const vespalib::string & baseDir, const SummaryConfig & summaryCfg,
_juniperConfig = std::make_unique<juniper::Juniper>(&_juniperProps, _wordFolder.get());
_docsumWriter = std::make_unique<DynamicDocsumWriter>(std::move(resultConfig), std::unique_ptr<KeywordExtractor>());
- DynamicDocsumConfig dynCfg(this, _docsumWriter.get());
+ DynamicDocsumConfig dynCfg(*this, _docsumWriter.get());
dynCfg.configure(summarymapCfg);
}
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h
index 0fd45bb28fb..44874e69b31 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.h
@@ -43,7 +43,7 @@ public:
search::docsummary::IDocsumStore::UP createDocsumStore() override;
- search::IAttributeManager * getAttributeManager() override { return _attributeMgr.get(); }
+ const search::IAttributeManager * getAttributeManager() const override { return _attributeMgr.get(); }
vespalib::string lookupIndex(const vespalib::string & s) const override { (void) s; return ""; }
juniper::Juniper * getJuniper() override { return _juniperConfig.get(); }
};
diff --git a/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp b/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp
index 28c0aad6c40..311a0e68a58 100644
--- a/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp
+++ b/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp
@@ -160,8 +160,8 @@ public:
{
}
~StateCallback() override;
- void FillSummaryFeatures(GetDocsumsState*, IDocsumEnvironment*) override {}
- void FillRankFeatures(GetDocsumsState*, IDocsumEnvironment*) override {}
+ void FillSummaryFeatures(GetDocsumsState&) override {}
+ void FillRankFeatures(GetDocsumsState&) override {}
std::unique_ptr<MatchingElements> fill_matching_elements(const MatchingElementsFields&) override {
auto result = std::make_unique<MatchingElements>();
result->add_matching_elements(doc_id, _field_name, _matching_elements);
diff --git a/searchsummary/src/tests/docsummary/positionsdfw_test.cpp b/searchsummary/src/tests/docsummary/positionsdfw_test.cpp
index 3531efe1798..0de84096e82 100644
--- a/searchsummary/src/tests/docsummary/positionsdfw_test.cpp
+++ b/searchsummary/src/tests/docsummary/positionsdfw_test.cpp
@@ -51,7 +51,7 @@ struct MyEnvironment : IDocsumEnvironment {
MyEnvironment() : attribute_man(0) {}
- IAttributeManager *getAttributeManager() override { return attribute_man; }
+ const IAttributeManager *getAttributeManager() const override { return attribute_man; }
string lookupIndex(const string &s) const override { return s; }
juniper::Juniper *getJuniper() override { return 0; }
};
@@ -106,8 +106,8 @@ public:
};
struct MyGetDocsumsStateCallback : GetDocsumsStateCallback {
- virtual void FillSummaryFeatures(GetDocsumsState *, IDocsumEnvironment *) override {}
- virtual void FillRankFeatures(GetDocsumsState *, IDocsumEnvironment *) override {}
+ virtual void FillSummaryFeatures(GetDocsumsState&) override {}
+ virtual void FillRankFeatures(GetDocsumsState&) override {}
std::unique_ptr<MatchingElements> fill_matching_elements(const MatchingElementsFields &) override { abort(); }
};
diff --git a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp
index 971f6101203..88c6cd974b9 100644
--- a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp
+++ b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp
@@ -79,8 +79,8 @@ struct DocsumFixture : IDocsumStore, GetDocsumsStateCallback {
}
return std::make_unique<DocsumStoreDocument>(std::move(doc));
}
- void FillSummaryFeatures(GetDocsumsState *, IDocsumEnvironment *) override { }
- void FillRankFeatures(GetDocsumsState *, IDocsumEnvironment *) override { }
+ void FillSummaryFeatures(GetDocsumsState&) override { }
+ void FillRankFeatures(GetDocsumsState&) override { }
std::unique_ptr<MatchingElements> fill_matching_elements(const search::MatchingElementsFields &) override { abort(); }
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
index 285148951fa..60e3bd6d815 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
@@ -364,7 +364,7 @@ create_multi_writer(const IAttributeVector& attr, bool filter_elements, std::sha
}
std::unique_ptr<DocsumFieldWriter>
-AttributeDFWFactory::create(IAttributeManager& attr_mgr,
+AttributeDFWFactory::create(const IAttributeManager& attr_mgr,
const vespalib::string& attr_name,
bool filter_elements,
std::shared_ptr<MatchingElementsFields> matching_elems_fields)
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h
index 88356ac783e..2b61803ebb3 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h
@@ -18,7 +18,7 @@ namespace search::docsummary {
*/
class AttributeDFWFactory {
public:
- static std::unique_ptr<DocsumFieldWriter> create(IAttributeManager& attr_mgr,
+ static std::unique_ptr<DocsumFieldWriter> create(const IAttributeManager& attr_mgr,
const vespalib::string& attr_name,
bool filter_elements = false,
std::shared_ptr<MatchingElementsFields> matching_elems_fields = std::shared_ptr<MatchingElementsFields>());
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.cpp
index fdbf9cf169d..cebfac4c86d 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.cpp
@@ -19,7 +19,7 @@ using vespalib::IllegalArgumentException;
namespace search::docsummary {
-DocsumFieldWriterFactory::DocsumFieldWriterFactory(bool use_v8_geo_positions, IDocsumEnvironment* env)
+DocsumFieldWriterFactory::DocsumFieldWriterFactory(bool use_v8_geo_positions, IDocsumEnvironment& env)
: _use_v8_geo_positions(use_v8_geo_positions),
_env(env),
_matching_elems_fields(std::make_shared<MatchingElementsFields>())
@@ -28,6 +28,12 @@ DocsumFieldWriterFactory::DocsumFieldWriterFactory(bool use_v8_geo_positions, ID
DocsumFieldWriterFactory::~DocsumFieldWriterFactory() = default;
+bool
+DocsumFieldWriterFactory::has_attribute_manager() const noexcept
+{
+ return getEnvironment().getAttributeManager() != nullptr;
+}
+
std::unique_ptr<DocsumFieldWriter>
DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& fieldName, const vespalib::string& overrideName, const vespalib::string& argument, bool& rc)
{
@@ -35,7 +41,7 @@ DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& fie
std::unique_ptr<DocsumFieldWriter> fieldWriter;
if (overrideName == "dynamicteaser") {
if ( ! argument.empty() ) {
- auto fw = std::make_unique<DynamicTeaserDFW>(getEnvironment()->getJuniper());
+ auto fw = std::make_unique<DynamicTeaserDFW>(getEnvironment().getJuniper());
auto fw_ptr = fw.get();
fieldWriter = std::move(fw);
rc = fw_ptr->Init(fieldName.c_str(), argument);
@@ -43,10 +49,10 @@ DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& fie
throw IllegalArgumentException("Missing argument");
}
} else if (overrideName == "summaryfeatures") {
- fieldWriter = std::make_unique<SummaryFeaturesDFW>(getEnvironment());
+ fieldWriter = std::make_unique<SummaryFeaturesDFW>();
rc = true;
} else if (overrideName == "rankfeatures") {
- fieldWriter = std::make_unique<RankFeaturesDFW>(getEnvironment());
+ fieldWriter = std::make_unique<RankFeaturesDFW>();
rc = true;
} else if (overrideName == "empty") {
fieldWriter = std::make_unique<EmptyDFW>();
@@ -59,38 +65,38 @@ DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& fie
throw IllegalArgumentException("Missing argument");
}
} else if (overrideName == "absdist") {
- if (getEnvironment()) {
- fieldWriter = AbsDistanceDFW::create(argument.c_str(), getEnvironment()->getAttributeManager());
+ if (has_attribute_manager()) {
+ fieldWriter = AbsDistanceDFW::create(argument.c_str(), getEnvironment().getAttributeManager());
rc = static_cast<bool>(fieldWriter);
}
} else if (overrideName == "positions") {
- if (getEnvironment()) {
- fieldWriter = PositionsDFW::create(argument.c_str(), getEnvironment()->getAttributeManager(), _use_v8_geo_positions);
+ if (has_attribute_manager()) {
+ fieldWriter = PositionsDFW::create(argument.c_str(), getEnvironment().getAttributeManager(), _use_v8_geo_positions);
rc = static_cast<bool>(fieldWriter);
}
} else if (overrideName == "geopos") {
- if (getEnvironment()) {
- fieldWriter = GeoPositionDFW::create(argument.c_str(), getEnvironment()->getAttributeManager(), _use_v8_geo_positions);
+ if (has_attribute_manager()) {
+ fieldWriter = GeoPositionDFW::create(argument.c_str(), getEnvironment().getAttributeManager(), _use_v8_geo_positions);
rc = static_cast<bool>(fieldWriter);
}
} else if (overrideName == "attribute") {
- if (getEnvironment() && getEnvironment()->getAttributeManager()) {
- fieldWriter = AttributeDFWFactory::create(*getEnvironment()->getAttributeManager(), argument);
+ if (has_attribute_manager()) {
+ fieldWriter = AttributeDFWFactory::create(*getEnvironment().getAttributeManager(), argument);
rc = true; // Allow missing attribute vector
}
} else if (overrideName == "attributecombiner") {
- if (getEnvironment() && getEnvironment()->getAttributeManager()) {
- auto attr_ctx = getEnvironment()->getAttributeManager()->createContext();
+ if (has_attribute_manager()) {
+ auto attr_ctx = getEnvironment().getAttributeManager()->createContext();
const vespalib::string& source_field = argument.empty() ? fieldName : argument;
fieldWriter = AttributeCombinerDFW::create(source_field, *attr_ctx, false, std::shared_ptr<MatchingElementsFields>());
rc = static_cast<bool>(fieldWriter);
}
} else if (overrideName == "matchedattributeelementsfilter") {
const vespalib::string& source_field = argument.empty() ? fieldName : argument;
- if (getEnvironment() && getEnvironment()->getAttributeManager()) {
- auto attr_ctx = getEnvironment()->getAttributeManager()->createContext();
+ if (has_attribute_manager()) {
+ auto attr_ctx = getEnvironment().getAttributeManager()->createContext();
if (attr_ctx->getAttribute(source_field) != nullptr) {
- fieldWriter = AttributeDFWFactory::create(*getEnvironment()->getAttributeManager(), source_field, true, _matching_elems_fields);
+ fieldWriter = AttributeDFWFactory::create(*getEnvironment().getAttributeManager(), source_field, true, _matching_elems_fields);
} else {
fieldWriter = AttributeCombinerDFW::create(source_field, *attr_ctx, true, _matching_elems_fields);
}
@@ -98,8 +104,8 @@ DocsumFieldWriterFactory::create_docsum_field_writer(const vespalib::string& fie
}
} else if (overrideName == "matchedelementsfilter") {
const vespalib::string& source_field = argument.empty() ? fieldName : argument;
- if (getEnvironment() && getEnvironment()->getAttributeManager()) {
- auto attr_ctx = getEnvironment()->getAttributeManager()->createContext();
+ if (has_attribute_manager()) {
+ auto attr_ctx = getEnvironment().getAttributeManager()->createContext();
fieldWriter = MatchedElementsFilterDFW::create(source_field,*attr_ctx, _matching_elems_fields);
rc = static_cast<bool>(fieldWriter);
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.h b/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.h
index 2725ca748bd..b4f28524eba 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsum_field_writer_factory.h
@@ -16,12 +16,13 @@ class IDocsumEnvironment;
class DocsumFieldWriterFactory : public IDocsumFieldWriterFactory
{
bool _use_v8_geo_positions;
- IDocsumEnvironment * _env;
+ IDocsumEnvironment& _env;
protected:
std::shared_ptr<MatchingElementsFields> _matching_elems_fields;
- IDocsumEnvironment * getEnvironment() { return _env; }
+ IDocsumEnvironment& getEnvironment() const noexcept { return _env; }
+ bool has_attribute_manager() const noexcept;
public:
- DocsumFieldWriterFactory(bool use_v8_geo_positions, IDocsumEnvironment* env);
+ DocsumFieldWriterFactory(bool use_v8_geo_positions, IDocsumEnvironment& env);
~DocsumFieldWriterFactory() override;
std::unique_ptr<DocsumFieldWriter> create_docsum_field_writer(const vespalib::string& fieldName, const vespalib::string& overrideName, const vespalib::string& argument, bool& rc) override;
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.h
index f5a82b4f79b..40c4e134bbc 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumconfig.h
@@ -16,7 +16,7 @@ class ResultConfig;
class DynamicDocsumConfig
{
public:
- DynamicDocsumConfig(IDocsumEnvironment * env, DynamicDocsumWriter * writer) :
+ DynamicDocsumConfig(IDocsumEnvironment& env, DynamicDocsumWriter * writer) :
_env(env),
_writer(writer)
{ }
@@ -24,12 +24,12 @@ public:
void configure(const vespa::config::search::SummarymapConfig &cfg);
protected:
using string = vespalib::string;
- IDocsumEnvironment * getEnvironment() { return _env; }
+ IDocsumEnvironment& getEnvironment() { return _env; }
const ResultConfig & getResultConfig() const;
virtual std::unique_ptr<IDocsumFieldWriterFactory> make_docsum_field_writer_factory();
private:
- IDocsumEnvironment * _env;
+ IDocsumEnvironment& _env;
DynamicDocsumWriter * _writer;
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h
index d3d09224f64..0ebcc20ef42 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h
@@ -32,8 +32,8 @@ class DocsumFieldWriterState;
class GetDocsumsStateCallback
{
public:
- virtual void FillSummaryFeatures(GetDocsumsState * state, IDocsumEnvironment * env) = 0;
- virtual void FillRankFeatures(GetDocsumsState * state, IDocsumEnvironment * env) = 0;
+ virtual void FillSummaryFeatures(GetDocsumsState& state) = 0;
+ virtual void FillRankFeatures(GetDocsumsState& state) = 0;
virtual std::unique_ptr<MatchingElements> fill_matching_elements(const MatchingElementsFields &matching_elems_fields) = 0;
virtual ~GetDocsumsStateCallback() = default;
GetDocsumsStateCallback(const GetDocsumsStateCallback &) = delete;
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp
index 28c55f1c2a6..d911ac562c2 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp
@@ -143,7 +143,7 @@ DynamicDocsumWriter::Override(const char *fieldName, std::unique_ptr<DocsumField
void
-DynamicDocsumWriter::InitState(IAttributeManager & attrMan, GetDocsumsState *state)
+DynamicDocsumWriter::InitState(const IAttributeManager & attrMan, GetDocsumsState *state)
{
state->_kwExtractor = _keywordExtractor.get();
state->_attrCtx = attrMan.createContext();
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.h
index e8ef80663f9..ac0d461ab81 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.h
@@ -37,7 +37,7 @@ public:
};
virtual ~IDocsumWriter() = default;
- virtual void InitState(search::IAttributeManager & attrMan, GetDocsumsState *state) = 0;
+ virtual void InitState(const search::IAttributeManager & attrMan, GetDocsumsState *state) = 0;
virtual void WriteDocsum(uint32_t docid, GetDocsumsState *state,
IDocsumStore *docinfos, Inserter & target) = 0;
virtual void insertDocsum(const ResolveClassInfo & rci, uint32_t docid, GetDocsumsState *state,
@@ -67,7 +67,7 @@ public:
const ResultConfig *GetResultConfig() { return _resultConfig.get(); }
bool Override(const char *fieldName, std::unique_ptr<DocsumFieldWriter> writer);
- void InitState(search::IAttributeManager & attrMan, GetDocsumsState *state) override;
+ void InitState(const search::IAttributeManager & attrMan, GetDocsumsState *state) override;
void WriteDocsum(uint32_t docid, GetDocsumsState *state,
IDocsumStore *docinfos, Inserter & inserter) override;
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp
index 975fd7f0a6a..474f329799b 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp
@@ -101,7 +101,7 @@ GeoPositionDFW::insertField(uint32_t docid, GetDocsumsState * dsState, ResType,
GeoPositionDFW::UP
GeoPositionDFW::create(const char *attribute_name,
- IAttributeManager *attribute_manager,
+ const IAttributeManager *attribute_manager,
bool useV8geoPositions)
{
GeoPositionDFW::UP ret;
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h
index db43592c0b4..1bc8b523160 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h
@@ -17,7 +17,7 @@ public:
typedef std::unique_ptr<GeoPositionDFW> UP;
GeoPositionDFW(const vespalib::string & attrName, bool useV8geoPositions);
void insertField(uint32_t docid, GetDocsumsState *state, ResType type, vespalib::slime::Inserter &target) const override;
- static UP create(const char *attribute_name, IAttributeManager *attribute_manager, bool useV8geoPositions);
+ static UP create(const char *attribute_name, const IAttributeManager *attribute_manager, bool useV8geoPositions);
};
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/idocsumenvironment.h b/searchsummary/src/vespa/searchsummary/docsummary/idocsumenvironment.h
index bc6a347590a..1e9f550ac6d 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/idocsumenvironment.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/idocsumenvironment.h
@@ -12,10 +12,10 @@ namespace search::docsummary {
**/
class IDocsumEnvironment {
public:
- virtual search::IAttributeManager * getAttributeManager() = 0;
+ virtual const search::IAttributeManager * getAttributeManager() const = 0;
virtual vespalib::string lookupIndex(const vespalib::string & s) const = 0;
virtual juniper::Juniper * getJuniper() = 0;
- virtual ~IDocsumEnvironment() {}
+ virtual ~IDocsumEnvironment() = default;
};
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp
index aa7db0e2745..1000fee8423 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp
@@ -252,7 +252,7 @@ PositionsDFW::insertField(uint32_t docid, GetDocsumsState * dsState, ResType typ
//--------------------------------------------------------------------------
-PositionsDFW::UP PositionsDFW::create(const char *attribute_name, IAttributeManager *attribute_manager, bool useV8geoPositions) {
+PositionsDFW::UP PositionsDFW::create(const char *attribute_name, const IAttributeManager *attribute_manager, bool useV8geoPositions) {
PositionsDFW::UP ret;
if (attribute_manager != nullptr) {
if (!attribute_name) {
@@ -274,7 +274,7 @@ PositionsDFW::UP PositionsDFW::create(const char *attribute_name, IAttributeMana
}
std::unique_ptr<DocsumFieldWriter>
-AbsDistanceDFW::create(const char *attribute_name, IAttributeManager *attribute_manager) {
+AbsDistanceDFW::create(const char *attribute_name, const IAttributeManager *attribute_manager) {
std::unique_ptr<DocsumFieldWriter> ret;
if (attribute_manager != nullptr) {
if (!attribute_name) {
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h
index c0d9d7d8111..d0a38d1004e 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h
@@ -46,7 +46,7 @@ public:
void insertField(uint32_t docid, GetDocsumsState *state,
ResType type, vespalib::slime::Inserter &target) const override;
- static std::unique_ptr<DocsumFieldWriter> create(const char *attribute_name, IAttributeManager *index_man);
+ static std::unique_ptr<DocsumFieldWriter> create(const char *attribute_name, const IAttributeManager *index_man);
};
@@ -61,7 +61,7 @@ public:
PositionsDFW(const vespalib::string & attrName, bool useV8geoPositions);
bool IsGenerated() const override { return true; }
void insertField(uint32_t docid, GetDocsumsState *state, ResType type, vespalib::slime::Inserter &target) const override;
- static UP create(const char *attribute_name, IAttributeManager *index_man, bool useV8geoPositions);
+ static UP create(const char *attribute_name, const IAttributeManager *index_man, bool useV8geoPositions);
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp
index 5b08020c010..b7b10d9c1ea 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp
@@ -7,9 +7,7 @@
namespace search::docsummary {
-RankFeaturesDFW::RankFeaturesDFW(IDocsumEnvironment * env) :
- _env(env)
-{ }
+RankFeaturesDFW::RankFeaturesDFW() = default;
RankFeaturesDFW::~RankFeaturesDFW() = default;
@@ -18,7 +16,7 @@ RankFeaturesDFW::insertField(uint32_t docid, GetDocsumsState *state,
ResType, vespalib::slime::Inserter &target) const
{
if ( !state->_rankFeatures ) {
- state->_callback.FillRankFeatures(state, _env);
+ state->_callback.FillRankFeatures(*state);
if (state->_rankFeatures.get() == nullptr) { // still no rank features to write
return;
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h
index d0516f9f0b7..023d5ad158f 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.h
@@ -10,11 +10,8 @@ class IDocsumEnvironment;
class RankFeaturesDFW : public SimpleDFW
{
-private:
- IDocsumEnvironment * _env;
-
public:
- RankFeaturesDFW(IDocsumEnvironment * env);
+ RankFeaturesDFW();
RankFeaturesDFW(const RankFeaturesDFW &) = delete;
RankFeaturesDFW & operator=(const RankFeaturesDFW &) = delete;
~RankFeaturesDFW() override;
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp
index f5fc942e40c..76bae0cee97 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.cpp
@@ -11,10 +11,7 @@ LOG_SETUP(".searchlib.docsummary.summaryfeaturesdfw");
namespace search::docsummary {
-SummaryFeaturesDFW::SummaryFeaturesDFW(IDocsumEnvironment * env) :
- _env(env)
-{
-}
+SummaryFeaturesDFW::SummaryFeaturesDFW() = default;
SummaryFeaturesDFW::~SummaryFeaturesDFW() = default;
@@ -27,7 +24,7 @@ SummaryFeaturesDFW::insertField(uint32_t docid, GetDocsumsState *state, ResType,
return;
}
if ( ! state->_summaryFeatures) {
- state->_callback.FillSummaryFeatures(state, _env);
+ state->_callback.FillSummaryFeatures(*state);
if ( !state->_summaryFeatures) { // still no summary features to write
return;
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h
index 45d7f7fa641..fd1092f840a 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfeaturesdfw.h
@@ -10,11 +10,8 @@ class IDocsumEnvironment;
class SummaryFeaturesDFW : public SimpleDFW
{
-private:
- IDocsumEnvironment * _env;
-
public:
- SummaryFeaturesDFW(IDocsumEnvironment * env);
+ SummaryFeaturesDFW();
SummaryFeaturesDFW(const SummaryFeaturesDFW &) = delete;
SummaryFeaturesDFW & operator=(const SummaryFeaturesDFW &) = delete;
~SummaryFeaturesDFW() override;
diff --git a/searchsummary/src/vespa/searchsummary/test/mock_state_callback.h b/searchsummary/src/vespa/searchsummary/test/mock_state_callback.h
index df035fca685..71c2be19bba 100644
--- a/searchsummary/src/vespa/searchsummary/test/mock_state_callback.h
+++ b/searchsummary/src/vespa/searchsummary/test/mock_state_callback.h
@@ -16,8 +16,8 @@ public:
{
}
~MockStateCallback() override { }
- void FillSummaryFeatures(GetDocsumsState*, IDocsumEnvironment*) override { }
- void FillRankFeatures(GetDocsumsState*, IDocsumEnvironment*) override { }
+ void FillSummaryFeatures(GetDocsumsState&) override { }
+ void FillRankFeatures(GetDocsumsState&) override { }
std::unique_ptr<MatchingElements> fill_matching_elements(const search::MatchingElementsFields&) override {
return std::make_unique<MatchingElements>(_matching_elems);
}
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp
index dcf093ee92b..c7ca9b52dc9 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.cpp
@@ -35,7 +35,7 @@ void populate_fields(MatchingElementsFields& fields, VsmfieldsConfig& fields_con
}
-DocsumFieldWriterFactory::DocsumFieldWriterFactory(bool use_v8_geo_positions, IDocsumEnvironment* env, const vespa::config::search::vsm::VsmfieldsConfig& vsm_fields_config)
+DocsumFieldWriterFactory::DocsumFieldWriterFactory(bool use_v8_geo_positions, IDocsumEnvironment& env, const vespa::config::search::vsm::VsmfieldsConfig& vsm_fields_config)
: search::docsummary::DocsumFieldWriterFactory(use_v8_geo_positions, env),
_vsm_fields_config(vsm_fields_config)
{
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h
index 4084b435bf2..b8362c06f78 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsum_field_writer_factory.h
@@ -16,7 +16,7 @@ class DocsumFieldWriterFactory : public search::docsummary::DocsumFieldWriterFac
const vespa::config::search::vsm::VsmfieldsConfig& _vsm_fields_config;
public:
- DocsumFieldWriterFactory(bool use_v8_geo_positions, search::docsummary::IDocsumEnvironment* env, const vespa::config::search::vsm::VsmfieldsConfig& vsm_fields_config);
+ DocsumFieldWriterFactory(bool use_v8_geo_positions, search::docsummary::IDocsumEnvironment& env, const vespa::config::search::vsm::VsmfieldsConfig& vsm_fields_config);
~DocsumFieldWriterFactory() override;
std::unique_ptr<search::docsummary::DocsumFieldWriter>
create_docsum_field_writer(const vespalib::string& fieldName, const vespalib::string& overrideName, const vespalib::string& argument, bool& rc) override;
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp
index 22c3b270836..7525477fb52 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.cpp
@@ -9,7 +9,7 @@ using vespa::config::search::vsm::VsmfieldsConfig;
namespace vsm {
-DynamicDocsumConfig::DynamicDocsumConfig(search::docsummary::IDocsumEnvironment* env, search::docsummary::DynamicDocsumWriter* writer, std::shared_ptr<VsmfieldsConfig> vsm_fields_config)
+DynamicDocsumConfig::DynamicDocsumConfig(search::docsummary::IDocsumEnvironment& env, search::docsummary::DynamicDocsumWriter* writer, std::shared_ptr<VsmfieldsConfig> vsm_fields_config)
: Parent(env, writer),
_vsm_fields_config(std::move(vsm_fields_config))
{
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h b/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h
index f423a0b478a..d5b7e258165 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsumconfig.h
@@ -18,7 +18,7 @@ public:
private:
std::shared_ptr<VsmfieldsConfig> _vsm_fields_config;
public:
- DynamicDocsumConfig(search::docsummary::IDocsumEnvironment* env, search::docsummary::DynamicDocsumWriter* writer, std::shared_ptr<VsmfieldsConfig> vsm_fields_config);
+ DynamicDocsumConfig(search::docsummary::IDocsumEnvironment& env, search::docsummary::DynamicDocsumWriter* writer, std::shared_ptr<VsmfieldsConfig> vsm_fields_config);
private:
std::unique_ptr<search::docsummary::IDocsumFieldWriterFactory> make_docsum_field_writer_factory() override;
};
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
index 03965e6c63e..2bf6b2f3972 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
@@ -22,20 +22,18 @@ GetDocsumsStateCallback::GetDocsumsStateCallback() :
_matching_elements_filler()
{ }
-void GetDocsumsStateCallback::FillSummaryFeatures(GetDocsumsState * state, IDocsumEnvironment * env)
+void GetDocsumsStateCallback::FillSummaryFeatures(GetDocsumsState& state)
{
- (void) env;
if (_summaryFeatures) { // set the summary features to write to the docsum
- state->_summaryFeatures = _summaryFeatures;
- state->_summaryFeaturesCached = true;
+ state._summaryFeatures = _summaryFeatures;
+ state._summaryFeaturesCached = true;
}
}
-void GetDocsumsStateCallback::FillRankFeatures(GetDocsumsState * state, IDocsumEnvironment * env)
+void GetDocsumsStateCallback::FillRankFeatures(GetDocsumsState& state)
{
- (void) env;
if (_rankFeatures) { // set the rank features to write to the docsum
- state->_rankFeatures = _rankFeatures;
+ state._rankFeatures = _rankFeatures;
}
}
@@ -168,7 +166,7 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
docsumTools->set_writer(std::move(writer));
// configure dynamic docsum writer
- DynamicDocsumConfig dynDocsumConfig(docsumTools.get(), docsumTools->getDocsumWriter(), _fieldsCfg.get());
+ DynamicDocsumConfig dynDocsumConfig(*docsumTools, docsumTools->getDocsumWriter(), _fieldsCfg.get());
dynDocsumConfig.configure(*summaryMap.get());
// configure new docsum tools
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h
index 2788475b4ad..b8583dc801d 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.h
@@ -38,8 +38,8 @@ private:
public:
GetDocsumsStateCallback();
- void FillSummaryFeatures(GetDocsumsState * state, IDocsumEnvironment * env) override;
- void FillRankFeatures(GetDocsumsState * state, IDocsumEnvironment * env) override;
+ void FillSummaryFeatures(GetDocsumsState& state) override;
+ void FillRankFeatures(GetDocsumsState& state) override;
virtual void FillDocumentLocations(GetDocsumsState * state, IDocsumEnvironment * env);
virtual std::unique_ptr<search::MatchingElements> fill_matching_elements(const search::MatchingElementsFields& fields) override;
void setSummaryFeatures(const search::FeatureSet::SP & sf) { _summaryFeatures = sf; }
@@ -88,7 +88,7 @@ public:
bool obtainFieldNames(const FastS_VsmsummaryHandle &cfg);
// inherit doc from IDocsumEnvironment
- search::IAttributeManager * getAttributeManager() override { return NULL; }
+ const search::IAttributeManager * getAttributeManager() const override { return nullptr; }
vespalib::string lookupIndex(const vespalib::string&) const override { return ""; }
juniper::Juniper * getJuniper() override { return _juniper.get(); }
};