8#include <condition_variable>
28 std::shared_ptr<void> evt =
nullptr;
31 time_t run_interval = 0;
54 bool needs_update =
false;
55 std::map<std::string, ScheduledTask> scheduled_tasks;
56 std::thread task_thread;
58 std::condition_variable cv;
81 void add_task(std::string task_name, std::shared_ptr<T> evt, time_t last_run, time_t run_interval)
85 std::lock_guard<std::mutex> lock(task_mtx);
86 scheduled_tasks[task_name] = {evt,
typeid(T).name(), last_run, run_interval};
104 std::lock_guard<std::mutex> lock(task_mtx);
105 scheduled_tasks.erase(task_name);
void del_task(std::string task_name)
Remove a scheduled task. Does nothing if no task by the given name is registered.
Definition task_scheduler.h:100
void add_task(std::string task_name, std::shared_ptr< T > evt, time_t last_run, time_t run_interval)
Add a new scheduled task.
Definition task_scheduler.h:81
Struct holding a scheduled task.
Definition task_scheduler.h:27