diff options
Diffstat (limited to 'searchlib/src/vespa/searchlib/memoryindex/invert_task.h')
-rw-r--r-- | searchlib/src/vespa/searchlib/memoryindex/invert_task.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/memoryindex/invert_task.h b/searchlib/src/vespa/searchlib/memoryindex/invert_task.h new file mode 100644 index 00000000000..48f999a963d --- /dev/null +++ b/searchlib/src/vespa/searchlib/memoryindex/invert_task.h @@ -0,0 +1,39 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include <vespa/vespalib/util/executor.h> +#include <vector> + +namespace document { +class Document; +class FieldValue; +} + +namespace search::memoryindex { + +class DocumentInverterContext; +class FieldInverter; +class InvertContext; +class UrlFieldInverter; + +/* + * Task to invert a set of document fields into related field + * inverters and uri field inverters. + */ +class InvertTask : public vespalib::Executor::Task +{ + const DocumentInverterContext& _inv_context; + const InvertContext& _context; + const std::vector<std::unique_ptr<FieldInverter>>& _inverters; + const std::vector<std::unique_ptr<UrlFieldInverter>>& _uri_inverters; + std::vector<std::unique_ptr<document::FieldValue>> _field_values; + std::vector<std::unique_ptr<document::FieldValue>> _uri_field_values; + uint32_t _lid; +public: + InvertTask(const DocumentInverterContext& inv_context, const InvertContext& context, const std::vector<std::unique_ptr<FieldInverter>>& inverters, const std::vector<std::unique_ptr<UrlFieldInverter>>& uri_inverters, uint32_t lid, const document::Document& doc); + ~InvertTask() override; + void run() override; +}; + +} |