Lumiera  0.pre.03
»edit your freedom«
vault::gear Namespace Reference

Description

Active working gear and plumbing.

Notably the Scheduler and performance observation and self-regulation are implemented here.

Namespaces

Typedefs

using BlockFlowAlloc = BlockFlow< blockFlow::RenderConfig >
 
typedef lumiera_jobParameter const & JobParameter
 

Classes

struct  ActivationEvent
 
class  Activity
 Record to describe an Activity, to happen within the Scheduler's control flow. More...
 
class  ActivityLang
 Term builder and execution framework to perform chains of scheduler Activities. More...
 
class  BlockFlow
 Allocation scheme for the Scheduler, based on Epoch(s). More...
 
class  EngineConfig
 Point of access for any kind of engine configuration, setup and performance tweaks. More...
 
class  EngineEvent
 Low-level Render Engine event — abstracted storage base. More...
 
class  EngineObserver
 Collector and aggregator for performance data. More...
 
class  FlowDiagnostic
 
class  Job
 Individual frame rendering task, forwarding to a closure. More...
 
class  JobClosure
 Interface of the closure for frame rendering jobs. More...
 
class  JobFunctor
 
class  LoadController
 Controller to coordinate resource usage related to the Scheduler. More...
 
class  ManifestationID
 Marker for current (and obsolete) manifestations of a CalcStream processed by the Render-Engine. More...
 
class  NopJobFunctor
 Stub/Test implementation of the JobFunctor interface for a render job to do nothing at all More...
 
class  Scheduler
 »Scheduler-Service« : coordinate render activities. More...
 
class  SchedulerCommutator
 Scheduler Layer-2 : execution of Scheduler Activities. More...
 
class  SchedulerDiagnostics
 Render engine diagnostic facility. More...
 
class  SchedulerFrontend
 Access point to the scheduler service provided by the back-end. More...
 
class  SchedulerInvocation
 Scheduler Layer-1 : time based dispatch. More...
 
class  ScheduleSpec
 
class  SpecialFunPrototype
 Interface: JobFunctor configured to invoke a function a limited number of times. More...
 
class  SpecialJobFun
 Front-end to configure a special job functor for one-time use. More...
 
class  WorkForce
 Pool of worker threads for rendering. More...
 
class  WorkTiming
 work-timing event for performance observation More...
 

Functions

HashVal hash_value (ManifestationID const &id)
 
HashVal hash_value (Job const &job)
 hash value based on all relevant job data. More...
 
bool operator!= (Job const &left, Job const &right)
 
bool operator== (Job const &left, Job const &right)
 
template<class CONF >
FlowDiagnostic< CONF > watch (BlockFlow< CONF > &theFlow)
 

Function Documentation

◆ hash_value()

HashVal vault::gear::hash_value ( Job const &  job)

hash value based on all relevant job data.

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.