joque
task orchestration library
dag.hpp File Reference
#include "bits/dag.hpp"
#include "bits/list.hpp"
#include "task.hpp"
#include <iosfwd>
#include <memory>
#include <ranges>
#include <string>
+ Include dependency graph for dag.hpp:

Go to the source code of this file.

Classes

struct  joque::edge_content
 
struct  joque::node_content
 

Namespaces

 joque
 MIT License.
 

Typedefs

using joque::dag_edge = bits::gedge< edge_content >
 
using joque::dag_node = bits::gnode< node_content, dag_edge >
 
using joque::dag = bits::graph< dag_node >
 DAG used to store data in single execution of tasks. More...
 

Enumerations

enum class  joque::ekind : uint8_t {
  joque::AFTER ,
  joque::INVALIDATED_BY ,
  joque::REQUIRES
}
 
enum class  joque::inval : uint8_t {
  joque::VALID ,
  joque::INVALID ,
  joque::UNKNOWN
}
 

Functions

std::string_view joque::to_sv (const ekind &e)
 
template<ekind Kind, typename Edges >
auto joque::filter_edges (Edges &e)
 
template<typename Node , typename... Args>
void joque::add_edge (Node &source, Node &target, Args &&... args)
 
std::string_view joque::to_sv (const inval &k)
 
void joque::insert_set (dag &dag, const task_set &ts, const std::string &filter)
 

Class Documentation

◆ joque::edge_content

struct joque::edge_content
+ Collaboration diagram for joque::edge_content:
Class Members
dag_node & source
dag_node & target
ekind kind

◆ joque::node_content

struct joque::node_content
+ Collaboration diagram for joque::node_content:
Class Members
string name Full path-name of the task.
const task & t Reference to the task.
inval invalidated Node validation status.
bool started Sets to true once the task is scheduled for execution.
bool done Sets to done if the task finished it's execution (correctly or incorrectly)
bool failed Sets to fail if the task failed during execution.