joque
task orchestration library
|
#include "job.hpp"
#include <functional>
#include <map>
#include <memory>
#include <span>
#include <string>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Classes | |
struct | joque::resource |
Abstraction to model resource used by tasks. More... | |
struct | joque::task |
Single task that should be executed by the system. More... | |
struct | joque::task_set |
A set of tasks that contains either tasks or another sets. More... | |
Namespaces | |
joque | |
MIT License. | |
Typedefs | |
template<typename T > | |
using | joque::ref_vec = std::vector< std::reference_wrapper< const T > > |
Functions | |
template<typename T , typename Fun > | |
joque::requires (std::same_as< std::remove_cvref_t< T >, task_set >) void for_each_task(T &ts | |
Recursively executes function f for each task in set ts . More... | |
void | joque::for_each_add_dep (task_set &ts, const task &dep) |
Recursively adds dependency on dep for each task in ts , except for dep itself. More... | |
void | joque::add_dep_to_each (task &t, const task_set &ts) |
Recursively adds dependency on each task in ts to task t , except for t itself. More... | |
void | joque::run_each_after (task_set &ts, const task &t) |
Recursively adds run after relationship so that all tasks in ts are run after t . More... | |
void | joque::run_after_all_of (task &t, const task_set &ts) |
Recursively adds run after relationship so that task t is run after all tasks in set ts . More... | |
void | joque::invalidated_by_all_of (task &t, const task_set &ts) |
template<typename T , typename Fun > | |
void | joque::for_each_task_impl (T &ts, Fun &&f, const std::string &prefix) |
Variables | |
Fun && | joque::f |
struct joque::resource |
struct joque::task |
Single task that should be executed by the system.
Class Members | ||
---|---|---|
job_ptr | job | Job being executed for the task. |
ref_vec< task > | depends_on |
Dependencies of the task - all of these should be executed before this task. In case any of these is invalidated, this task is also invalidated. |
ref_vec< task > | run_after |
Tasks that should be executed before this task. ( |
ref_vec< task > | invalidated_by | Tasks which invalidation also invalidates this task. |
ref_vec< resource > | resources | Resources used by this task, only one task can access any resource at single point in time. |
bool | hidden | In case this is set to true, this task should not be visible in standard reports. |
struct joque::task_set |
A set of tasks that contains either tasks or another sets.
This forms a tree representing the entire task set.
Convention is that names inside the structure are concatenated to form a full path. Task x
in root set is referred as //x
. Task y
in subset z
is referred as //z/y
.
Class Members | ||
---|---|---|
map< string, task > | tasks | Tasks of this set. |
map< string, task_set > | sets | Subsets of this set. |