diff options
Diffstat (limited to 'searchlib/src/vespa/searchlib/memoryindex/push_task.h')
-rw-r--r-- | searchlib/src/vespa/searchlib/memoryindex/push_task.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/memoryindex/push_task.h b/searchlib/src/vespa/searchlib/memoryindex/push_task.h new file mode 100644 index 00000000000..24474fb2003 --- /dev/null +++ b/searchlib/src/vespa/searchlib/memoryindex/push_task.h @@ -0,0 +1,36 @@ +// 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 vespalib { +class IDestructorCallback; +class RetainGuard; +} + +namespace search::memoryindex { + +class FieldInverter; +class PushContext; +class UrlFieldInverter; + +/* + * Task to push inverted data from a set of field inverters and uri + * field inverters to to memory index structure. + */ +class PushTask : public vespalib::Executor::Task +{ + const PushContext& _context; + const std::vector<std::unique_ptr<FieldInverter>>& _inverters; + const std::vector<std::unique_ptr<UrlFieldInverter>>& _uri_inverters; + std::shared_ptr<vespalib::IDestructorCallback> _on_write_done; + std::shared_ptr<vespalib::RetainGuard> _retain; +public: + PushTask(const PushContext& context, const std::vector<std::unique_ptr<FieldInverter>>& inverters, const std::vector<std::unique_ptr<UrlFieldInverter>>& uri_inverters, std::shared_ptr<vespalib::IDestructorCallback> on_write_done, std::shared_ptr<vespalib::RetainGuard> retain); + ~PushTask() override; + void run() override; +}; + +} |