37#ifndef VAULT_GEAR_SPECIAL_JOB_FUN_H
38#define VAULT_GEAR_SPECIAL_JOB_FUN_H
62 using std::make_shared;
106 REQUIRE (instance->selfHook_);
107 REQUIRE (instance->remainingInvocations());
109 return instance->selfHook_;
126 throw err::Logic{
"invoking deceased SpecialJobFun"
127 ,err::LUMIERA_ERROR_LIFECYCLE};
137 return _Fmt{
"SpecialJob(%d)-%s"}
158 template<
class FUN,
typename =disable_if_self<SpecialJobFun, FUN>>
167 operator bool()
const
174 REQUIRE (
operator bool());
Generic opaque reference counting handle, for accessing a service and managing its lifecycle.
void close()
deactivate this handle, so it isn't tied any longer to the associated implementation or service objec...
SpecialFunPrototype & impl() const
A front-end for using printf-style formatting.
Interface of the closure for frame rendering jobs.
Stub/Test implementation of the JobFunctor interface for a render job to do nothing at all
Interface: JobFunctor configured to invoke a function a limited number of times.
virtual uint remainingInvocations() const =0
uint remainingInvocations() const
friend _Handle & selfAttached(SpecialExecutor *instance)
SpecialExecutor(FUN theFun)
std::string diagnostic() const override
void invokeJobOperation(JobParameter param) override
Front-end to configure a special job functor for one-time use.
uint remainingInvocations() const
SpecialJobFun(FUN &&someFun)
Establish a new SpecialJobFun variation directly by wrapping a given functor.
A generic opaque handle to an implementation entity, including lifecycle management.
LumieraError< LERR_(LOGIC)> Logic
string showHash(size_t hash, uint showBytes) noexcept
renders the size_t in hex, optionally only trailing bytes
lumiera_jobParameter const & JobParameter
Vault-Layer implementation namespace root.
Generic implementation of a JobFunctor to perform no calculations.
a family of time value like entities and their relationships.