Create the JobOrderer and inform it of the jobs to manage.
Holds all source Jobs that have been requested via popNextJob but haven't yet been reported completed via reportCompletedJob.
Maps each Job to its dependents. Used to update dependency graph.
Job B's dependents include Job A if and only if Job A's prerequisites include Job B.
Maps each Job to the number of its completed prerequisites (how many of its prerequisite Jobs have been reported completed).
If the number of a Job's prerequisites is equal to the number of its completed prerequisites, then all of its prerequisites are completed and it's ready to be run.
Holds all Jobs that aren't sources.
Holds all Jobs that are sources, meaning that they are runnable because they have no uncompleted prerequisistes.
It's a Heap instead of a Set because we want to choose the source with the most dependents as the next Job to run. The sorting function prioritizes Jobs by the number of dependents they have.
Whether all of the jobs are complete.
Checks whether the given job is a source.
A job is a source if all of its prerequisites are completed.
The job to check.
Whether the given job is a source.
Chooses the next job to run and returns it. Marks that job as in-progress. If there is no job that can be run, returns null.
The next job to run.
Marks a job as completed. JobOrderer will update the dependency graph and then forget about this job.
The job that is completed.
Marks an in-progress job as failed. JobOrderer will try to run it again at some point.
The job that failed.
Generated using TypeDoc
Manages a set of jobs that have to be run.