9 #include <condition_variable>
10 #include <cynq/enums.hpp>
11 #include <cynq/status.hpp>
99 const std::vector<NodeID> dependencies = std::vector<NodeID>(0)) = 0;
136 static std::shared_ptr<IExecutionGraph>
Create(
138 const std::shared_ptr<ExecutionGraphParameters> params);
Execution Graph Interface.
Definition: execution-graph.hpp:52
virtual IExecutionGraph::NodeID Add(const Function &function, const std::vector< NodeID > dependencies=std::vector< NodeID >(0))=0
Adds a function to the execution graph.
std::function< Status()> Function
Underlying type for the auxiliar functions.
Definition: execution-graph.hpp:67
Type
Enum with the multiple implementations of the IExecutionGraph.
Definition: execution-graph.hpp:72
@ STREAM
Definition: execution-graph.hpp:76
@ None
Definition: execution-graph.hpp:74
static std::shared_ptr< IExecutionGraph > Create(const IExecutionGraph::Type type, const std::shared_ptr< ExecutionGraphParameters > params)
Factory method to create a new implementation.
Definition: execution-graph.cpp:13
virtual Status Sync(const NodeID node=-1)=0
Synchronises the execution of the graph.
virtual Status GetLastError()=0
Get the Last Error found during the execution.
int NodeID
Underlying type for the NodeID.
Definition: execution-graph.hpp:57
virtual ~IExecutionGraph()=default
Define an abstract representation of the IExecutionGraph parameters with some prefilled fields.
Definition: execution-graph.hpp:23
virtual ~ExecutionGraphParameters()=default
uint64_t timeout
Definition: execution-graph.hpp:28
std::string name
Definition: execution-graph.hpp:25
Node structure to hold information about each node in a generic manner.
Definition: execution-graph.hpp:144
NodeID id
Definition: execution-graph.hpp:146
std::vector< Node * > children
Definition: execution-graph.hpp:154
std::vector< NodeID > dependencies
Definition: execution-graph.hpp:150
std::vector< Node * > parents
Definition: execution-graph.hpp:152
Structure to define the return characteristics of each function.
Definition: status.hpp:19