Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
Job Class Reference

#include "vault/gear/job.h"

Description

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.

Definition at line 274 of file job.h.

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
 

Constructor & Destructor Documentation

◆ Job()

Job ( JobClosure specificJobDefinition,
InvocationInstanceID  invoKey,
Time  nominalFrameTime 
)
inline

Definition at line 280 of file job.h.

Member Function Documentation

◆ triggerJob()

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:

◆ getNominalTime()

Time getNominalTime ( ) const
inline

Definition at line 296 of file job.h.

◆ getInvocationInstanceID()

InvocationInstanceID getInvocationInstanceID ( ) const
inline

Definition at line 302 of file job.h.

◆ getKind()

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:

◆ usesClosure()

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:

Friends And Related Symbol Documentation

◆ hash_value

lib::HashVal hash_value ( Job const &  job)
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.

Definition at line 104 of file job.cpp.

+ Inheritance diagram for Job:
+ Collaboration diagram for Job:

The documentation for this class was generated from the following files: