FTXUI
6.1.9
C++ functional terminal UI.
载入中...
搜索中...
未找到
task_queue.hpp
浏览该文件的文档.
1
// 版权所有 2024 Arthur Sonzogni。保留所有权利。
2
// 本源代码的使用受 MIT 许可证的约束,该许可证可在 LICENSE 文件中找到。
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
定义
screen_interactive.hpp:26
ftxui::task::PendingTask
PendingTask 表示一个计划在特定时间或尽快执行的任务。
定义
task_internal.hpp:16
ftxui::task::TaskQueue
定义
task_queue.hpp:17
ftxui::task::TaskQueue::HasImmediateTasks
bool HasImmediateTasks() const
定义
task_queue.hpp:24
ftxui::task::TaskQueue::Get
auto Get() -> MaybeTask
定义
task_queue.cpp:22
ftxui::task::TaskQueue::MaybeTask
std::variant< Task, std::chrono::steady_clock::duration, std::monostate > MaybeTask
定义
task_queue.hpp:20
ftxui::task::TaskQueue::PostTask
auto PostTask(PendingTask task) -> void
定义
task_queue.cpp:8
task_internal.hpp