diff options
Diffstat (limited to 'icing/index/iterator/doc-hit-info-iterator-or.h')
-rw-r--r-- | icing/index/iterator/doc-hit-info-iterator-or.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/icing/index/iterator/doc-hit-info-iterator-or.h b/icing/index/iterator/doc-hit-info-iterator-or.h index 1e9847d..8c0427b 100644 --- a/icing/index/iterator/doc-hit-info-iterator-or.h +++ b/icing/index/iterator/doc-hit-info-iterator-or.h @@ -16,7 +16,9 @@ #define ICING_INDEX_ITERATOR_DOC_HIT_INFO_ITERATOR_OR_H_ #include <cstdint> +#include <memory> #include <string> +#include <utility> #include "icing/index/iterator/doc-hit-info-iterator.h" @@ -38,12 +40,17 @@ class DocHitInfoIteratorOr : public DocHitInfoIterator { libtextclassifier3::Status Advance() override; - int32_t GetNumBlocksInspected() const override; - - int32_t GetNumLeafAdvanceCalls() const override; + CallStats GetCallStats() const override { + return left_->GetCallStats() + right_->GetCallStats(); + } std::string ToString() const override; + void MapChildren(const ChildrenMapper &mapper) override { + left_ = mapper(std::move(left_)); + right_ = mapper(std::move(right_)); + } + void PopulateMatchedTermsStats( std::vector<TermMatchInfo> *matched_terms_stats, SectionIdMask filtering_section_mask = kSectionIdMaskAll) const override { @@ -83,12 +90,16 @@ class DocHitInfoIteratorOrNary : public DocHitInfoIterator { libtextclassifier3::Status Advance() override; - int32_t GetNumBlocksInspected() const override; - - int32_t GetNumLeafAdvanceCalls() const override; + CallStats GetCallStats() const override; std::string ToString() const override; + void MapChildren(const ChildrenMapper &mapper) override { + for (int i = 0; i < iterators_.size(); ++i) { + iterators_[i] = mapper(std::move(iterators_[i])); + } + } + void PopulateMatchedTermsStats( std::vector<TermMatchInfo> *matched_terms_stats, SectionIdMask filtering_section_mask = kSectionIdMaskAll) const override { |