diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-04-12 20:13:50 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-04-12 20:13:50 +0200 |
commit | d39e86ba1b6f9c18fb540392d18d2e415b9c7dc4 (patch) | |
tree | 4cdc7cb32d6a55596eb850e1ec8250b9aadef18a /searchcommon | |
parent | 4f22734462a0fac9dcc4fcdc8542218bb849c842 (diff) |
Stop sharing multivalue read views.
Diffstat (limited to 'searchcommon')
-rw-r--r-- | searchcommon/src/vespa/searchcommon/attribute/i_multi_value_attribute.h | 35 | ||||
-rw-r--r-- | searchcommon/src/vespa/searchcommon/attribute/i_multi_value_read_view.h | 6 |
2 files changed, 22 insertions, 19 deletions
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<int8_t>* as_read_view(ArrayTag<int8_t>) const { return nullptr; } - virtual const IArrayReadView<int16_t>* as_read_view(ArrayTag<int16_t>) const { return nullptr; } - virtual const IArrayReadView<int32_t>* as_read_view(ArrayTag<int32_t>) const { return nullptr; } - virtual const IArrayReadView<int64_t>* as_read_view(ArrayTag<int64_t>) const { return nullptr; } - virtual const IArrayReadView<float>* as_read_view(ArrayTag<float>) const { return nullptr; } - virtual const IArrayReadView<double>* as_read_view(ArrayTag<double>) const { return nullptr; } - - virtual const IWeightedSetReadView<int8_t>* as_read_view(WeightedSetTag<int8_t>) const { return nullptr; } - virtual const IWeightedSetReadView<int16_t>* as_read_view(WeightedSetTag<int16_t>) const { return nullptr; } - virtual const IWeightedSetReadView<int32_t>* as_read_view(WeightedSetTag<int32_t>) const { return nullptr; } - virtual const IWeightedSetReadView<int64_t>* as_read_view(WeightedSetTag<int64_t>) const { return nullptr; } - virtual const IWeightedSetReadView<float>* as_read_view(WeightedSetTag<float>) const { return nullptr; } - virtual const IWeightedSetReadView<double>* as_read_view(WeightedSetTag<double>) 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<int8_t>* make_read_view(ArrayTag<int8_t>, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView<int16_t>* make_read_view(ArrayTag<int16_t>, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView<int32_t>* make_read_view(ArrayTag<int32_t>, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView<int64_t>* make_read_view(ArrayTag<int64_t>, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView<float>* make_read_view(ArrayTag<float>, vespalib::Stash&) const { return nullptr; } + virtual const IArrayReadView<double>* make_read_view(ArrayTag<double>, vespalib::Stash&) const { return nullptr; } + + virtual const IWeightedSetReadView<int8_t>* make_read_view(WeightedSetTag<int8_t>, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView<int16_t>* make_read_view(WeightedSetTag<int16_t>, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView<int32_t>* make_read_view(WeightedSetTag<int32_t>, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView<int64_t>* make_read_view(WeightedSetTag<int64_t>, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView<float>* make_read_view(WeightedSetTag<float>, vespalib::Stash&) const { return nullptr; } + virtual const IWeightedSetReadView<double>* make_read_view(WeightedSetTag<double>, 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 <typename MultiValueType> class IMultiValueReadView { public: virtual ~IMultiValueReadView() {} - virtual vespalib::ConstArrayRef<MultiValueType> get_raw_values(uint32_t docid) const = 0; + virtual vespalib::ConstArrayRef<MultiValueType> get_values(uint32_t docid) const = 0; }; /** |