Lumiera  0.pre.03
»edit your freedom«
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 277 of file job.h.

Public Member Functions

 Job (JobClosure &specificJobDefinition, InvocationInstanceID invoKey, Time nominalFrameTime)
 
InvocationInstanceID getInvocationInstanceID () const
 
JobKind getKind () const
 find out about the classification of this job. More...
 
Time getNominalTime () const
 
void triggerJob () const
 
bool usesClosure (JobClosure const &) const
 

Friends

lib::HashVal hash_value (Job const &)
 provide a hash based Job ID More...
 

Member Function Documentation

◆ 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 91 of file job.cpp.

Friends And Related Function 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 113 of file job.cpp.

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

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