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

#include "backend/engine/job.h"

Description

Interface of the closure for frame rendering jobs.

Hidden behind this interface resides all of the context re-building and invocation mechanics to get the actual calculations going. While the job descriptor, as handled by the scheduler, contains the variable "moving parts", the corresponding job closure represents the execution context of a job and is shared between several jobs within the same segment of the timeline.

This allows us to enqueue simple job-"functions" with the scheduler. By virtue of the JobClosure-pointer, embedded into #lumiera_jobDefinition, the invocation of such a job may re-gain the full context, including the actual ProcNode to pull and further specifics, like the media channel.

Definition at line 214 of file job.h.

Public Member Functions

virtual ~JobClosure ()
 this is an interface More...
 
virtual JobKind getJobKind () const =0
 
lib::HashVal hash_value (JobParameter) const
 
virtual size_t hashOfInstance (InvocationInstanceID) const =0
 
virtual void invokeJobOperation (JobParameter parameter)=0
 
virtual void signalFailure (JobParameter, JobFailureReason)=0
 
virtual bool verify (Time, InvocationInstanceID) const =0
 

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable ()=default
 
 NonCopyable (NonCopyable const &)=delete
 
 ~NonCopyable ()=default
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Constructor & Destructor Documentation

~JobClosure ( )
virtual

this is an interface

emit the VTable for JobClosure within this compilation unit, which is still part of the backend.

The actual job implementation classes are defined in the Proc-Layer

Definition at line 69 of file job.cpp.

Member Function Documentation

virtual void invokeJobOperation ( JobParameter  parameter)
pure virtual
virtual void signalFailure ( JobParameter  ,
JobFailureReason   
)
pure virtual
virtual JobKind getJobKind ( ) const
pure virtual

Implemented in CalcPlanContinuation, and FrameJobClosure.

virtual bool verify ( Time  ,
InvocationInstanceID   
) const
pure virtual

Implemented in CalcPlanContinuation, and FrameJobClosure.

virtual size_t hashOfInstance ( InvocationInstanceID  ) const
pure virtual

Implemented in CalcPlanContinuation, and FrameJobClosure.

Referenced by JobClosure::hash_value().

+ Here is the caller graph for this function:

HashVal hash_value ( JobParameter  parameter) const

Definition at line 137 of file job.cpp.

References hash, and JobClosure::hashOfInstance().

+ Here is the call graph for this function:

+ Inheritance diagram for JobClosure:
+ Collaboration diagram for JobClosure:

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