Lumiera  0.pre.03
»edit your freedom«
LifecycleAdvisor Class Referenceabstract

#include "steam/mobject/session/lifecycle-advisor.hpp"

Description

Skeleton of operations conducting the session lifecycle sequences.

Any details of the operations are delegated to the current session and associated services.

Warning
this object is assumed to be used as a single instance in a controlled and safe (single threaded) environment

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
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Member Function Documentation

◆ pullUp()

void pullUp ( )
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.

+ Here is the call graph for this function:

◆ shutDown()

void shutDown ( )
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.

+ Here is the call graph for this function:

◆ createSessionFacilities()

virtual void createSessionFacilities ( )
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().

+ Here is the caller graph for this function:

◆ deconfigure()

virtual void deconfigure ( )
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.

Note
even after leaving this phase, all session components remain valid and basically operational. Already disconnected render processes might still access implementation facilities or session content. The actual unwinding and destruction is controlled by memory management and thus by reference count.

Implemented in SessionLifecycleDetails.

Referenced by LifecycleAdvisor::shutDown(), and LifecycleAdvisor::~LifecycleAdvisor().

+ Here is the caller graph for this function:
+ Inheritance diagram for LifecycleAdvisor:
+ Collaboration diagram for LifecycleAdvisor:

The documentation for this class was generated from the following file: