31#include <boost/functional/hash.hpp>
44 ASSERT (self->jobClosure);
45 return *
static_cast<JobClosure*
> (self->jobClosure);
91 return isSameObject (myClosure(
this), otherClosure);
106 return myClosure(&job).
hash_value (job.parameter);
113 boost::hash_combine(
hash,
typeid(*this).hash_code());
114 boost::hash_combine(
hash, parameter.nominalTime);
127 Job& job =
static_cast<Job&
> (jobDef);
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 ~JobFunctor()
this is an interface
Individual frame rendering task, forwarding to a closure.
bool usesClosure(JobClosure const &) const
JobKind getKind() const
find out about the classification of this job.
size_t lumiera_job_get_hash(LumieraJobDefinition jobDef)
calculate a hash value based on the Job's identity.
void lumiera_job_invoke(LumieraJobDefinition jobDef)
trigger execution of a specific job, assuming availability of all prerequisites
int lumiera_invokey_eq(void *l, void *r)
Definition of a render job.
lumiera_jobDefinition * LumieraJobDefinition
int lumiera_uid_eq(const lumiera_uid *luida, const lumiera_uid *luidb)
Test 2 luid's for equality.
Lumiera unique object identifier.
Job & forwardInvocation(lumiera_jobDefinition &jobDef)
size_t HashVal
a STL compatible hash value
bool isSameObject(A const &a, B const &b)
compare plain object identity, based directly on the referee's memory identities.
JobClosure & myClosure(const Job *const self)
lumiera_jobParameter const & JobParameter
HashVal hash_value(ManifestationID const &id)
Vault-Layer implementation namespace root.
Generic implementation of a JobFunctor to perform no calculations.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...