51 #ifndef VAULT_GEAR_JOB_H 52 #define VAULT_GEAR_JOB_H 87 typedef int64_t FrameCnt;
116 FrameCnt frameNumber;
117 struct { int32_t a,b;
135 gavl_time_t nominalTime;
142 typedef lumiera_jobParameter* LumieraJobParameter;
152 typedef lumiera_jobDefinition* LumieraJobDefinition;
184 typedef lumiera_jobDescriptor* LumieraJobDescriptor;
206 typedef lumiera_jobParameter
const& JobParameter;
222 operator std::string()
const 250 virtual void invokeJobOperation (JobParameter parameter) =0;
252 virtual JobKind getJobKind()
const =0;
276 :
public lumiera_jobDefinition
283 ,
Time nominalFrameTime)
285 this->jobClosure = &specificJobDefinition;
286 this->parameter.nominalTime = _raw(nominalFrameTime);
287 this->parameter.invoKey = invoKey;
293 void triggerJob()
const;
297 getNominalTime()
const 303 getInvocationInstanceID()
const 305 return this->parameter.invoKey;
317 operator== (
Job const& left,
Job const& right)
319 return hash_value (left) == hash_value (right);
323 operator!= (
Job const& left,
Job const& right)
325 return hash_value (left) != hash_value (right);
348 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
sorry, can't do that Dave
job for freewheeling calculation of final results
calculating frame data, CPU bound
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.