Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Job Class Reference

#include "backend/engine/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 248 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
 
bool isValid () const
 Render Job self verification. More...
 
void signalFailure (JobFailureReason) const
 
void triggerJob () const
 
bool usesClosure (JobClosure const &) const
 

Friends

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

Constructor & Destructor Documentation

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

Definition at line 254 of file job.h.

Member Function Documentation

void triggerJob ( ) const

Definition at line 76 of file job.cpp.

Referenced by DispatcherInterface_test::check_ContinuationBuilder(), and JobHash_test::verify_simple_job_properties().

+ Here is the caller graph for this function:

void signalFailure ( JobFailureReason  reason) const

Definition at line 83 of file job.cpp.

Time getNominalTime ( ) const
inline

Definition at line 271 of file job.h.

Referenced by DispatcherInterface_test::check_ContinuationBuilder(), Job::isValid(), and DispatcherInterface_test::verify_standardDispatcherUsage().

+ Here is the caller graph for this function:

InvocationInstanceID getInvocationInstanceID ( ) const
inline

Definition at line 277 of file job.h.

Referenced by Job::isValid(), and DispatcherInterface_test::verify_standardDispatcherUsage().

+ Here is the caller graph for this function:

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

References Job::isValid().

Referenced by DispatcherInterface_test::check_ContinuationBuilder().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool isValid ( ) const

Render Job self verification.

performs a parameter consistency check including a call-back to the defining JobTicket

Definition at line 107 of file job.cpp.

References Job::getInvocationInstanceID(), and Job::getNominalTime().

Referenced by Job::getKind(), and JobHash_test::verify_simple_job_properties().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool usesClosure ( JobClosure const &  otherClosure) const

Definition at line 116 of file job.cpp.

References util::isSameObject().

Referenced by DummyJob::invocationTime(), and DummyJob::was_invoked().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Friends And Related Function Documentation

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

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

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