31#ifndef LUMIERA_APPSTATE_H
32#define LUMIERA_APPSTATE_H
51 class SubsystemRunner;
Bootstrap and self-configuration of the application at startup.
Access point to singletons and other kinds of dependencies designated by type.
Helper to abstract creation and lifecycle of a dependency.
The Lumiera Application state and basic initialisation.
~AppState()
anything which should be closed as late as possible and after the normal shutdown sequence can be pla...
string fetchSetupValue(lib::Literal key)
access basic application setup values (from setup.ini)
void init(lumiera::Option &options)
evaluate the result of option parsing and maybe additional configuration such as to be able to determ...
ExitCode abort() noexcept
initiate an fatal emergency shutdown, caused by an unforeseen error condition
ExitCode maybeWait()
put the main thread of the application into a wait state, as long as some subsystem(s) registered wit...
std::unique_ptr< SubsystemRunner > PSub
static lib::Depend< AppState > instance
get the (single) AppState instance.
void maybeStart(lumiera::Subsys &)
building on the state determined by init, decide if the given Subsys needs to be pulled up and,...
AppState()
perform initialisation triggered on first access.
Represents the elementary self-configuration of a running Lumiera application instance.
Interface and Base definition for all Lumiera Exceptions.
Frontend for handling the Lumiera application commandline arguments.
Dependencies and lifecycle of a partially independent Subsystem of the Application.
Implementation helper for managing execution of a collection of subsystems, which may depend on one a...
Any copy and copy construction prohibited.
Singleton services and Dependency Injection.
Lumiera public interface.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
front-end for handling the commandline arguments.
Describing dependencies and lifecycle of the application's primary parts.
Marker types to indicate a literal string and a Symbol.