aboutsummaryrefslogtreecommitdiffstats
path: root/searchcommon
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-04-12 20:13:50 +0200
committerTor Egge <Tor.Egge@online.no>2022-04-12 20:13:50 +0200
commitd39e86ba1b6f9c18fb540392d18d2e415b9c7dc4 (patch)
tree4cdc7cb32d6a55596eb850e1ec8250b9aadef18a /searchcommon
parent4f22734462a0fac9dcc4fcdc8542218bb849c842 (diff)
Stop sharing multivalue read views.
Diffstat (limited to 'searchcommon')
-rw-r--r--searchcommon/src/vespa/searchcommon/attribute/i_multi_value_attribute.h35
-rw-r--r--searchcommon/src/vespa/searchcommon/attribute/i_multi_value_read_view.h6
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;
};
/**