Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/mobject/session/lifecycle-advisor.hpp"
Skeleton of operations conducting the session lifecycle sequences.
Any details of the operations are delegated to the current session and associated services.
Definition at line 64 of file lifecycle-advisor.hpp.
Public Member Functions | |
virtual | ~LifecycleAdvisor () |
is ABC | |
void | pullUp () |
operation sequence to pull up the session. More... | |
void | shutDown () |
operation sequence for cleanly shutting down the session. More... | |
Protected Member Functions | |
virtual void | closeSessionInterface ()=0 |
virtual void | commandLogCheckpoint ()=0 |
virtual void | createSessionFacilities ()=0 |
Build and wire all the sub components together forming the session implementation. More... | |
virtual void | deconfigure ()=0 |
This final stage of the session lifecycle terminates the operational state of all parts of the current session. More... | |
virtual void | disconnectRenderProcesses ()=0 |
void | emitEvent (Symbol eventLabel) |
virtual void | getSessionReady ()=0 |
virtual void | injectSessionContent ()=0 |
virtual void | openSessionInterface ()=0 |
Additional Inherited Members | |
Private Member Functions inherited from NonCopyable | |
NonCopyable (NonCopyable const &)=delete | |
NonCopyable & | operator= (NonCopyable const &)=delete |
|
inline |
operation sequence to pull up the session.
After building the session implementation with all associated sub services in a default configured state, the new session is switched in to become the current session. Session content is loaded, either from default configuration or by de-serialising an existing session (loading from persistent storage). When everything is wired and ready, the new session is "armed" and the public session API is allowed to accept commands.
Definition at line 80 of file lifecycle-advisor.hpp.
References LifecycleAdvisor::createSessionFacilities(), steam::mobject::ON_SESSION_INIT, steam::mobject::ON_SESSION_READY, and steam::mobject::ON_SESSION_START.
|
inline |
operation sequence for cleanly shutting down the session.
To initiate shutdown, command processing is halted and the external session interface is closed. Any ongoing render processes are disconnected and asked to terminate. After maybe performing cleanup and consolidation routines, the command framework is disconnected from the log, discarding any pending commands. This brings the session subsystem back into de-configured state, all asset and content objects pending eviction, and the internal knowledge-base rolled back to zero.
Definition at line 103 of file lifecycle-advisor.hpp.
References LifecycleAdvisor::deconfigure(), steam::mobject::ON_SESSION_CLOSE, and steam::mobject::ON_SESSION_END.
|
protectedpure virtual |
Build and wire all the sub components together forming the session implementation.
All these components are created to be operational in principle, but not initialised or outfitted with actual boilerplate state. After leaving this function, all of the technical / implementation level invariants are fulfilled. As a final step, the "current" session pointer is switched.
Implemented in SessionLifecycleDetails.
Referenced by LifecycleAdvisor::pullUp(), and LifecycleAdvisor::~LifecycleAdvisor().
|
protectedpure virtual |
This final stage of the session lifecycle terminates the operational state of all parts of the current session.
When entering this phase, it can be assumed that no entity from outside the session will access any of these parts anymore. Now, all the internal indices and knowledge registries are advised to purge, thereby rendering any session content officially non-existent.
Implemented in SessionLifecycleDetails.
Referenced by LifecycleAdvisor::shutDown(), and LifecycleAdvisor::~LifecycleAdvisor().