From d39e86ba1b6f9c18fb540392d18d2e415b9c7dc4 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Tue, 12 Apr 2022 20:13:50 +0200 Subject: Stop sharing multivalue read views. --- .../attribute/i_multi_value_attribute.h | 35 ++++++++++++---------- .../attribute/i_multi_value_read_view.h | 6 ++-- 2 files changed, 22 insertions(+), 19 deletions(-) (limited to 'searchcommon') diff --git a/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_attribute.h b/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_attribute.h index cf72b3cf643..3ed86a076b3 100644 --- a/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_attribute.h +++ b/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_attribute.h @@ -4,6 +4,8 @@ #include "i_multi_value_read_view.h" +namespace vespalib { class Stash; } + namespace search::attribute { /** @@ -11,6 +13,7 @@ namespace search::attribute { * * The type-safe down-cast functions only return a valid pointer when that particular type is supported. * Otherwise a nullptr is returned. + * The returned read view is owned by the supplied stash. */ class IMultiValueAttribute { public: @@ -29,22 +32,22 @@ public: virtual ~IMultiValueAttribute() {} - virtual const IArrayReadView* as_read_view(ArrayTag) const { return nullptr; } - virtual const IArrayReadView* as_read_view(ArrayTag) const { return nullptr; } - virtual const IArrayReadView* as_read_view(ArrayTag) const { return nullptr; } - virtual const IArrayReadView* as_read_view(ArrayTag) const { return nullptr; } - virtual const IArrayReadView* as_read_view(ArrayTag) const { return nullptr; } - virtual const IArrayReadView* as_read_view(ArrayTag) const { return nullptr; } - - virtual const IWeightedSetReadView* as_read_view(WeightedSetTag) const { return nullptr; } - virtual const IWeightedSetReadView* as_read_view(WeightedSetTag) const { return nullptr; } - virtual const IWeightedSetReadView* as_read_view(WeightedSetTag) const { return nullptr; } - virtual const IWeightedSetReadView* as_read_view(WeightedSetTag) const { return nullptr; } - virtual const IWeightedSetReadView* as_read_view(WeightedSetTag) const { return nullptr; } - virtual const IWeightedSetReadView* as_read_view(WeightedSetTag) const { return nullptr; } - - virtual const IArrayEnumReadView* as_read_view(ArrayEnumTag) const { return nullptr; } - virtual const IWeightedSetEnumReadView* as_read_view(WeightedSetEnumTag) const { return nullptr; } + virtual const IArrayReadView* make_read_view(ArrayTag, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView* make_read_view(ArrayTag, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView* make_read_view(ArrayTag, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView* make_read_view(ArrayTag, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView* make_read_view(ArrayTag, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView* make_read_view(ArrayTag, vespalib::Stash&) const { return nullptr; } + + virtual const IWeightedSetReadView* make_read_view(WeightedSetTag, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView* make_read_view(WeightedSetTag, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView* make_read_view(WeightedSetTag, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView* make_read_view(WeightedSetTag, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView* make_read_view(WeightedSetTag, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView* make_read_view(WeightedSetTag, vespalib::Stash&) const { return nullptr; } + + virtual const IArrayEnumReadView* make_read_view(ArrayEnumTag, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetEnumReadView* make_read_view(WeightedSetEnumTag, vespalib::Stash&) const { return nullptr; } }; } diff --git a/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_read_view.h b/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_read_view.h index b62efb2098f..8e5005eae8d 100644 --- a/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_read_view.h +++ b/searchcommon/src/vespa/searchcommon/attribute/i_multi_value_read_view.h @@ -9,14 +9,14 @@ namespace search::attribute { /** - * Read view for the raw data stored in a multi-value attribute. - * @tparam MultiValueType The multi-value type of the raw data to access. + * Read view for the data stored in a multi-value attribute. + * @tparam MultiValueType The multi-value type of the data to access. */ template class IMultiValueReadView { public: virtual ~IMultiValueReadView() {} - virtual vespalib::ConstArrayRef get_raw_values(uint32_t docid) const = 0; + virtual vespalib::ConstArrayRef get_values(uint32_t docid) const = 0; }; /** -- cgit v1.2.3