Albert
Loading...
Searching...
No Matches
generatorqueryhandler.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Manuel Schneider
2// SPDX-License-Identifier: MIT
3
4#pragma once
6#include <memory>
7#include <vector>
8namespace QCoro { template<typename T> class Generator; }
9
10namespace albert
11{
12class Item;
13
14using ItemGenerator = QCoro::Generator<std::vector<std::shared_ptr<albert::Item>>>;
15
29class ALBERT_EXPORT GeneratorQueryHandler : public QueryHandler
30{
31public:
39 virtual ItemGenerator items(QueryContext &context) = 0;
40
41protected:
44
46 std::unique_ptr<QueryExecution> execution(QueryContext &context) override;
47};
48} // namespace albert
Coroutine-based synchronous generator query handler.
Definition generatorqueryhandler.h:30
virtual ItemGenerator items(QueryContext &context)=0
Yields batches of items for context lazily.
std::unique_ptr< QueryExecution > execution(QueryContext &context) override
Returns a threaded synchronous generator query execution for context.
~GeneratorQueryHandler() override
Destructs the handler.
Query interface.
Definition querycontext.h:19
Base query handler interface for triggered queries.
Definition queryhandler.h:33
Definition app.h:56
QCoro::Generator< std::vector< std::shared_ptr< albert::Item > > > ItemGenerator
Definition generatorqueryhandler.h:14