FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
task_runner.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_RUNNER_HPP
5#define TASK_RUNNER_HPP
6
9
10namespace ftxui::task {
11
13 public:
14 TaskRunner();
16
17 // Retourne le gestionnaire de tâches pour le thread actuel.
18 static auto Current() -> TaskRunner*;
19
20 /// Planifie une tâche à exécuter immédiatement.
21 auto PostTask(Task task) -> void;
22
23 /// Planifie une tâche à exécuter après une certaine durée.
24 auto PostDelayedTask(Task task,
25 std::chrono::steady_clock::duration duration) -> void;
26
27 /// Exécute les tâches dans la file d'attente, retourne le délai avant que la prochaine tâche différée
28 /// puisse être exécutée.
29 auto RunUntilIdle() -> std::optional<std::chrono::steady_clock::duration>;
30
31 // Exécute les tâches dans la file d'attente, bloquant jusqu'à ce que toutes les tâches soient exécutées.
32 auto Run() -> void;
33
34 bool HasImmediateTasks() const { return queue_.HasImmediateTasks(); }
35
36 size_t ExecutedTasks() const { return executed_tasks_; }
37
38 private:
39 TaskRunner* previous_task_runner_ = nullptr;
40 TaskQueue queue_;
41 size_t executed_tasks_ = 0;
42};
43
44} // namespace ftxui::task
45
46#endif // TASK_RUNNER_HPP
bool HasImmediateTasks() const
static auto Current() -> TaskRunner *
auto PostTask(Task task) -> void
Planifie une tâche à exécuter immédiatement.
auto RunUntilIdle() -> std::optional< std::chrono::steady_clock::duration >
Exécute les tâches dans la file d'attente.
auto PostDelayedTask(Task task, std::chrono::steady_clock::duration duration) -> void
Planifie une tâche à exécuter après une certaine durée.
size_t ExecutedTasks() const
std::function< void()> Task
Une tâche représente une unité de travail.
bool HasImmediateTasks() const