42#ifndef VAULT_GEAR_JOB_H
43#define VAULT_GEAR_JOB_H
110 struct { int32_t a,b;
221 operator std::string()
const
275 :
public lumiera_jobDefinition
282 ,
Time nominalFrameTime)
284 this->jobClosure = &specificJobDefinition;
285 this->parameter.nominalTime = _raw(nominalFrameTime);
286 this->parameter.invoKey = invoKey;
304 return this->parameter.invoKey;
basic constant internal time value.
Lumiera's internal time value datatype.
Any copy and copy construction prohibited.
Interface of the closure for frame rendering jobs.
lib::HashVal hash_value(JobParameter) const
virtual JobKind getJobKind() const =0
virtual HashVal hashOfInstance(InvocationInstanceID) const =0
virtual void invokeJobOperation(JobParameter parameter)=0
virtual ~JobClosure()
this is an interface
virtual InvocationInstanceID buildInstanceID(HashVal) const =0
virtual std::string diagnostic() const
virtual ~JobFunctor()
this is an interface
Individual frame rendering task, forwarding to a closure.
bool usesClosure(JobClosure const &) const
friend lib::HashVal hash_value(Job const &)
provide a hash based Job ID
Time getNominalTime() const
JobKind getKind() const
find out about the classification of this job.
InvocationInstanceID getInvocationInstanceID() const
Job(JobClosure &specificJobDefinition, InvocationInstanceID invoKey, Time nominalFrameTime)
Hash value types and utilities.
unsigned char lumiera_uid[16]
storage for a Lumiera unique ID, based on a 128bit random number
@ CALC_JOB
calculating frame data, CPU bound
@ TEST_JOB
test and diagnostic and research
@ LOAD_JOB
accessing prerequisites, IO bound
@ META_JOB
render process self organisation
lumiera_jobDefinition * LumieraJobDefinition
raw_time_64 deadline
given in real wall clock time
lumiera_jobDescriptor * LumieraJobDescriptor
struct InvocationInstanceID::@62 part
@ RUNNING
job is currently running
@ WAITING
waiting for some prerequisite
@ DONE
mission accomplished
@ EXPIRED
deadline expired
@ REJECTED
sorry, can't do that Dave
size_t lumiera_job_get_hash(LumieraJobDefinition)
calculate a hash value based on the Job's identity.
int lumiera_invokey_eq(void *l, void *r)
InvocationInstanceID invoKey
void lumiera_job_invoke(LumieraJobDefinition)
trigger execution of a specific job, assuming availability of all prerequisites
lumiera_jobParameter parameter
the "moving parts" for this individual invocation (Job)
struct InvocationInstanceID::@63 code
lumiera_jobParameter * LumieraJobParameter
LumieraJobClosure jobClosure
type and context of the job, including the actual functor
lumiera_jobDefinition jobDefinition
of interest only to Steam-Layer
@ ASAP_JOB
job for freewheeling calculation of final results
@ BACKGROUND_JOB
background rendering job
@ TIMEBOUND_JOB
regular job scheduled for time-bound delivery
complete definition of an individual job
invocation parameter for the individual frame calculation job.
opaque ID attached to each individual job invocation.
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
lumiera_jobParameter const & JobParameter
bool operator!=(Job const &left, Job const &right)
HashVal hash_value(ManifestationID const &id)
bool operator==(Job const &left, Job const &right)
Vault-Layer implementation namespace root.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
closure representing the execution context of a job.
a family of time value like entities and their relationships.