FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
task_queue.hpp
Go to the documentation of this file.
1// Copyright 2024 Arthur Sonzogni. All rights reserved.
2// このソースコードの使用は、LICENSEファイルにあるMITライセンスに準拠します。
3#ifndef TASK_QUEUE_HPP
4#define TASK_QUEUE_HPP
5
6#include <queue>
7#include <variant>
8
9#include "ftxui/component/task_internal.hpp" // for PendingTask, Task
10
11namespace ftxui::task {
12
13/// 将来の実行のためにタスクをスケジュールするタスクキュー。タスクは、即座に、または特定の期間後に実行されるようにスケジュールできます。
14/// - タスクはスケジュールされた順序で実行されます。
15/// - 複数のタスクが同時に実行されるようにスケジュールされている場合、それらはスケジュールされた順序で実行されます。
16/// - タスクが過去に実行されるようにスケジュールされている場合、それは即座に実行されます。
17struct TaskQueue {
18 auto PostTask(PendingTask task) -> void;
19
20 using MaybeTask =
21 std::variant<Task, std::chrono::steady_clock::duration, std::monostate>;
22 auto Get() -> MaybeTask;
23
24 bool HasImmediateTasks() const { return !immediate_tasks_.empty(); }
25
26 private:
27 std::queue<PendingTask> immediate_tasks_;
28 std::priority_queue<PendingTask> delayed_tasks_;
29};
30
31} // namespace ftxui::task
32
33#endif
PendingTaskは、特定の時刻に、または可能な限り早く実行されるようにスケジュールされたタスクを表します。
bool HasImmediateTasks() const
auto Get() -> MaybeTask
std::variant< Task, std::chrono::steady_clock::duration, std::monostate > MaybeTask
auto PostTask(PendingTask task) -> void
Definition task_queue.cpp:8