40#ifndef STEAM_CONTROL_LOOPER_H
41#define STEAM_CONTROL_LOOPER_H
58 using std::chrono::milliseconds;
206 return milliseconds::zero();
238 return STEAM_DISPATCHER_BUILDER_DELAY_ms;
244 return STEAM_DISPATCHER_BUSY_SLOWDOWN_FACTOR;
Duration is the internal Lumiera time metric.
Offset measures a distance in time.
a mutable time value, behaving like a plain number, allowing copy and re-accessing
Lumiera's internal time value datatype.
static const Time NEVER
border condition marker value. NEVER >= any time value
Encapsulated control logic for the session thread loop.
void markStateProcessed()
invoking this function signals that all consequences of past state changes have been processed and ar...
std::function< bool(void)> Predicate
void startBuilderTimeout()
Predicate hasCommandsPending_
Looper(FUN determine_commands_are_waiting)
static uint wakeTimeout_ms()
static uint slowdownFactor()
bool requireAction()
state fusion to control (timed) wait
milliseconds getTimeout() const
void enableProcessing(bool yes=true)
bool hasPendingChanges() const
< "check point"
bool shallLoop() const
state fusion to control looping
Convenience frontend to access the current raw system time.
const uint STEAM_DISPATCHER_BUILDER_DELAY_ms
Latency to trigger the Builder after processing command(s).
const uint STEAM_DISPATCHER_BUSY_SLOWDOWN_FACTOR
Factor to slow down the latency when the command queue is not empty.
Steam-Layer implementation namespace root.
Front-end for simplified access to the current wall clock time.
a family of time value like entities and their relationships.