6 #ifndef MYRAMATH_JOBGRAPH_SEQUENTIALJOBGRAPH_H 7 #define MYRAMATH_JOBGRAPH_SEQUENTIALJOBGRAPH_H 14 #include <myramath/MYRAMATH_EXPORT.h> 19 #include <myramath/jobgraph/Options.h> 27 class SequentialJobGraph;
48 virtual uint64_t n_work()
const;
51 virtual std::string name()
const;
54 virtual void begins(
JobIDs& output)
const;
57 virtual void ends(
JobIDs& output)
const;
60 virtual ::myra::Job* create(
JobID j);
63 virtual std::vector<Job*> create();
66 uint64_t size()
const;
69 virtual ::myra::JobGraphBase* clone()
const;
77 typedef std::vector<JobGraph> Subgraphs;
81 std::vector<uint64_t> sentinels;
100 virtual JobID id()
const override;
103 virtual void parents(
JobIDs& output)
const;
106 virtual void children(
JobIDs& output)
const;
109 virtual uint64_t execute();
112 virtual std::string name()
const;
115 virtual ~SentinelJob();
139 virtual JobID id()
const override;
142 virtual void parents(
JobIDs& output)
const;
145 virtual void children(
JobIDs& output)
const;
148 virtual uint64_t execute();
151 virtual std::string name()
const;
154 virtual ~SequentialJob();
159 friend class SequentialJob;
160 friend class SentinelJob;
Abstraction to represent one node of a JobGraph.
Definition: Job.h:25
Abstraction to represent one node of a JobGraph.
Contains multiple JobGraph's, executes()'s them in sequence.
Definition: SequentialJobGraph.h:30
Type erasure class that wraps JobGraphBase, gives it value semantics.
Definition: JobGraph.h:64
Base/contract class for all other JobGraph's.
Definition: JobGraph.h:30
Abstraction for representing a directed acyclic graph of Job's.
Key type used to identify the Job's of a JobGraph.
Key type used to identify the Job's of a JobGraph.
Definition: JobID.h:60
std::vector< JobID > JobIDs
Useful typedef.
Definition: JobID.h:118