51 #ifndef VAULT_GEAR_JOB_H 52 #define VAULT_GEAR_JOB_H 88 typedef int64_t FrameCnt;
117 FrameCnt frameNumber;
118 struct { int32_t a,b;
136 gavl_time_t nominalTime;
143 typedef lumiera_jobParameter* LumieraJobParameter;
153 typedef lumiera_jobDefinition* LumieraJobDefinition;
185 typedef lumiera_jobDescriptor* LumieraJobDescriptor;
208 typedef lumiera_jobParameter
const& JobParameter;
224 operator std::string()
const 252 virtual void invokeJobOperation (JobParameter parameter) =0;
254 virtual JobKind getJobKind()
const =0;
278 :
public lumiera_jobDefinition
285 ,
Time nominalFrameTime)
287 this->jobClosure = &specificJobDefinition;
288 this->parameter.nominalTime = _raw(nominalFrameTime);
289 this->parameter.invoKey = invoKey;
295 void triggerJob()
const;
299 getNominalTime()
const 305 getInvocationInstanceID()
const 307 return this->parameter.invoKey;
319 operator== (
Job const& left,
Job const& right)
321 return hash_value (left) == hash_value (right);
325 operator!= (
Job const& left,
Job const& right)
327 return hash_value (left) != hash_value (right);
350 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.