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
11
namespace
ftxui::task
{
12
13
/// 将来の実行のためにタスクをスケジュールするタスクキュー。タスクは、即座に、または特定の期間後に実行されるようにスケジュールできます。
14
/// - タスクはスケジュールされた順序で実行されます。
15
/// - 複数のタスクが同時に実行されるようにスケジュールされている場合、それらはスケジュールされた順序で実行されます。
16
/// - タスクが過去に実行されるようにスケジュールされている場合、それは即座に実行されます。
17
struct
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
ftxui::task
Definition
screen_interactive.hpp:27
ftxui::task::PendingTask
PendingTaskは、特定の時刻に、または可能な限り早く実行されるようにスケジュールされたタスクを表します。
Definition
task_internal.hpp:16
ftxui::task::TaskQueue
Definition
task_queue.hpp:17
ftxui::task::TaskQueue::HasImmediateTasks
bool HasImmediateTasks() const
Definition
task_queue.hpp:24
ftxui::task::TaskQueue::Get
auto Get() -> MaybeTask
Definition
task_queue.cpp:22
ftxui::task::TaskQueue::MaybeTask
std::variant< Task, std::chrono::steady_clock::duration, std::monostate > MaybeTask
Definition
task_queue.hpp:20
ftxui::task::TaskQueue::PostTask
auto PostTask(PendingTask task) -> void
Definition
task_queue.cpp:8
task_internal.hpp