42 #ifndef VAULT_GEAR_JOB_H 43 #define VAULT_GEAR_JOB_H 79 typedef int64_t FrameCnt;
108 FrameCnt frameNumber;
109 struct { int32_t a,b;
127 gavl_time_t nominalTime;
134 typedef lumiera_jobParameter* LumieraJobParameter;
144 typedef lumiera_jobDefinition* LumieraJobDefinition;
176 typedef lumiera_jobDescriptor* LumieraJobDescriptor;
199 typedef lumiera_jobParameter
const& JobParameter;
215 operator std::string()
const 243 virtual void invokeJobOperation (JobParameter parameter) =0;
245 virtual JobKind getJobKind()
const =0;
269 :
public lumiera_jobDefinition
276 ,
Time nominalFrameTime)
278 this->jobClosure = &specificJobDefinition;
279 this->parameter.nominalTime = _raw(nominalFrameTime);
280 this->parameter.invoKey = invoKey;
286 void triggerJob()
const;
290 getNominalTime()
const 296 getInvocationInstanceID()
const 298 return this->parameter.invoKey;
310 operator== (
Job const& left,
Job const& right)
312 return hash_value (left) == hash_value (right);
316 operator!= (
Job const& left,
Job const& right)
318 return hash_value (left) != hash_value (right);
341 int lumiera_invokey_eq (
void* l,
void* r);
lumiera_jobDefinition jobDefinition
of interest only to Steam-Layer
LumieraJobClosure jobClosure
type and context of the job, including the actual functor
waiting for some prerequisite
Common functions for handling of time values.
invocation parameter for the individual frame calculation job.
closure representing the execution context of a job.
Any copy and copy construction prohibited.
complete definition of an individual job
accessing prerequisites, IO bound
gavl_time_t deadline
given in real wall clock time
Lumiera's internal time value datatype.
lumiera_jobParameter parameter
the "moving parts" for this individual invocation (Job)
size_t lumiera_job_get_hash(LumieraJobDefinition)
calculate a hash value based on the Job's identity.
regular job scheduled for time-bound delivery
Mix-Ins to allow or prohibit various degrees of copying and cloning.
sorry, can't do that Dave
job for freewheeling calculation of final results
calculating frame data, CPU bound
test and diagnostic and research
opaque ID attached to each individual job invocation.
Hash value types and utilities.
Intrusive cyclic double linked list There is only one node type which contains a forward and a backwa...
size_t HashVal
a STL compatible hash value
Interface of the closure for frame rendering jobs.
void lumiera_job_invoke(LumieraJobDefinition)
trigger execution of a specific job, assuming availability of all prerequisites
unsigned char lumiera_uid[16]
storage for a Lumiera unique ID, based on a 128bit random number
render process self organisation
Individual frame rendering task, forwarding to a closure.
basic constant internal time value.
Vault-Layer implementation namespace root.