FTXUI
6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
task_queue.hpp
Aller à la documentation de ce fichier.
1
// Copyright 2024 Arthur Sonzogni. Tous droits réservés.
2
// L'utilisation de ce code source est régie par la licence MIT qui peut être trouvée dans
3
// le fichier LICENSE.
4
#ifndef TASK_QUEUE_HPP
5
#define TASK_QUEUE_HPP
6
7
#include <queue>
8
#include <variant>
9
10
#include "
ftxui/component/task_internal.hpp
"
// for PendingTask, Task
11
12
namespace
ftxui::task
{
13
14
/// Une file d'attente de tâches qui planifie les tâches à exécuter ultérieurement. Les tâches peuvent être
15
/// planifiées pour être exécutées immédiatement, ou après une certaine durée.
16
/// - Les tâches sont exécutées dans l'ordre où elles ont été planifiées.
17
/// - Si plusieurs tâches sont planifiées pour être exécutées en même temps, elles sont
18
/// exécutées dans l'ordre où elles ont été planifiées.
19
/// - Si une tâche est planifiée pour être exécutée dans le passé, elle est exécutée
20
/// immédiatement.
21
struct
TaskQueue
{
22
auto
PostTask
(
PendingTask
task) -> void;
23
24
using
MaybeTask
=
25
std::variant<Task, std::chrono::steady_clock::duration, std::monostate>;
26
auto
Get
() ->
MaybeTask
;
27
28
bool
HasImmediateTasks
()
const
{
return
!immediate_tasks_.empty(); }
29
30
private
:
31
std::queue<PendingTask> immediate_tasks_;
32
std::priority_queue<PendingTask> delayed_tasks_;
33
};
34
35
}
// namespace ftxui::task
36
37
#endif
ftxui::task
Definition
screen_interactive.hpp:27
ftxui::task::PendingTask
Definition
task_internal.hpp:18
ftxui::task::TaskQueue
Definition
task_queue.hpp:21
ftxui::task::TaskQueue::HasImmediateTasks
bool HasImmediateTasks() const
Definition
task_queue.hpp:28
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:24
ftxui::task::TaskQueue::PostTask
auto PostTask(PendingTask task) -> void
Definition
task_queue.cpp:8
task_internal.hpp