Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
TaskManagerProviderInterface.hpp
1#pragma once
2
3#include "etl/MonitorInterface.hpp"
4#include "etl/TaskManagerInterface.hpp"
5#include "util/async/AnyExecutionContext.hpp"
6
7#include <cstddef>
8#include <cstdint>
9#include <functional>
10#include <memory>
11#include <optional>
12
13namespace etl {
14
19 virtual ~TaskManagerProviderInterface() = default;
20
30 [[nodiscard]] virtual std::unique_ptr<TaskManagerInterface>
33 std::reference_wrapper<MonitorInterface> monitor,
34 uint32_t startSeq,
35 std::optional<uint32_t> finishSeq = std::nullopt
36 ) = 0;
37};
38
39} // namespace etl
A type-erased execution context.
Definition AnyExecutionContext.hpp:22
An interface for providing the Task Manager.
Definition TaskManagerProviderInterface.hpp:18
virtual std::unique_ptr< TaskManagerInterface > make(util::async::AnyExecutionContext ctx, std::reference_wrapper< MonitorInterface > monitor, uint32_t startSeq, std::optional< uint32_t > finishSeq=std::nullopt)=0
Make a task manager.