![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "vault/gear/job.h"
Individual frame rendering task, forwarding to a closure.
This functor encodes all information necessary to trigger and invoke the actual rendering operation. It will be embedded by value into a job descriptor and then enqueued with the scheduler for invocation just in time. The job interface exposes everything necessary to plan, handle, schedule and abort jobs. The implementation refers to the concrete "execution plan" encoded into the corresponding engine::JobTicket. The latter is embedded into the storage for one segment of the low-level model and thus is shared for all frames and channels within this part of the timeline. Thus, the lumiera_jobParameter struct contains the "moving parts" different for each individual job.
Public Member Functions | |
| Job (JobClosure &specificJobDefinition, InvocationInstanceID invoKey, Time nominalFrameTime) | |
| void | triggerJob () const |
| Time | getNominalTime () const |
| InvocationInstanceID | getInvocationInstanceID () const |
| JobKind | getKind () const |
| find out about the classification of this job. | |
| bool | usesClosure (JobClosure const &) const |
Friends | |
| lib::HashVal | hash_value (Job const &) |
| provide a hash based Job ID | |
|
inline |
| void triggerJob | ( | ) | const |
Definition at line 70 of file job.cpp.
References JobClosure::invokeJobOperation().
Referenced by JobPlanningPipeline_test::demonstrateScaffolding(), lumiera_job_invoke(), MockSupport_test::simpleUsage(), MockSupport_test::verify_MockPrerequisites(), MockSupport_test::verify_MockSegmentation(), and JobHash_test::verify_simple_job_properties().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
| JobKind getKind | ( | ) | const |
find out about the classification of this job.
Typically its not necessary for the normal scheduling of Jobs to know anything beyond the contents of the #lumiera_jobDescriptor, but the JobClosure is able to answer any additional introspection queries
Definition at line 82 of file job.cpp.
References JobClosure::getJobKind().
Here is the call graph for this function:| bool usesClosure | ( | JobClosure const & | otherClosure | ) | const |
Definition at line 89 of file job.cpp.
Referenced by MockJob::invocationAdditionalKey(), MockJob::invocationNominalTime(), MockJob::invocationTime(), and MockJob::was_invoked().
Here is the caller graph for this function:
|
friend |
provide a hash based Job ID
Job records hashing to the same value shall be considered equivalent. Since the interpretation of the InvocationInstanceID is a private detail of the JobClosure, calculating this hash requires a virtual call into the concrete JobClosure. This is not considered problematic, as the normal job operation and scheduling doesn't rely on the job's hash. Only some diagnostic facilities do.
Inheritance diagram for Job:
Collaboration diagram for Job: