Lumiera  0.pre.03
»edit your freedom«
SessManagerImpl Class Reference

#include "steam/mobject/session/sess-manager-impl.hpp"

Description

Session manager implementation class holding the actual smart pointer to the current Session impl.

Definition at line 52 of file sess-manager-impl.hpp.

Public Member Functions

virtual SessionImplAPIoperator-> () noexcept override
 Access to the "current session", which actually is an SessionImpl instance. More...
 

Friends

class lib::DependencyFactory< SessManagerImpl >
 

Private Member Functions

 SessManagerImpl ()
 Starting up the session access and lifecycle management. More...
 
virtual void clear () override
 
virtual void close () override
 Shut down the current session together with all associated services. More...
 
virtual bool isUp () override
 diagnostics: session interface opened?
 
virtual void load () override
 
virtual void reset () override
 
virtual void save (string) override
 

Private Attributes

unique_ptr< LifecycleAdvisorlifecycle_
 
unique_ptr< SessionImplAPIpSess_
 

Additional Inherited Members

- Static Public Member Functions inherited from Sync< CONF >
static MonitorgetMonitor (Sync const *forThis)
 

Constructor & Destructor Documentation

◆ SessManagerImpl()

SessManagerImpl ( )
private

Starting up the session access and lifecycle management.

Initially (at static init time), only the single system-wide Session manger instance is created. It can be used to load an existing session; otherwise an empty default Session, together with the core facilities (PlacementIndex, AssetManager, Query subsystem and the Defaults manager) is created on first access to the session object.

Definition at line 203 of file sess-manager-impl.cpp.

References Session::initFlag.

Member Function Documentation

◆ clear()

void clear ( )
overrideprivatevirtual
Note
no transactional behaviour. may succeed partially.
Todo:
clarify relation to command processing/undo /////////// TICKET #697

Implements SessManager.

Definition at line 230 of file sess-manager-impl.cpp.

◆ close()

void close ( )
overrideprivatevirtual

Shut down the current session together with all associated services.

Todo:

avoid blocking when aborting render processes ///////////// TICKET #201

well defined transactional behaviour ///////////////////// TICKET #698

Warning
throws error::Fatal or even deadlocks when called from session thread

Implements SessManager.

Definition at line 243 of file sess-manager-impl.cpp.

References SessManagerImpl::isUp().

+ Here is the call graph for this function:

◆ reset()

void reset ( )
overrideprivatevirtual
Todo:

error handling, how to deal with a partially configured session?

for reset() to work, we need to change the implementation of AssetManager so support this kind of transactional switch!

Warning
throws error::Fatal or even deadlocks when called from session thread

Implements SessManager.

Definition at line 258 of file sess-manager-impl.cpp.

References SessManagerImpl::isUp().

Referenced by SessManagerImpl::operator->().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ load()

void load ( )
overrideprivatevirtual
Warning
throws error::Fatal or even deadlocks when called from session thread

Implements SessManager.

Definition at line 270 of file sess-manager-impl.cpp.

References SessManagerImpl::isUp().

+ Here is the call graph for this function:

◆ save()

void save ( string  snapshotID)
overrideprivatevirtual
Implementation details
We intend to have several switchable object serialisers. One of these serialisers should generate a comprehensible text based representation suitable for checking into SCM systems. Sessions can be saved into one single file or be split to several files (master file and edl files)

Implements SessManager.

Definition at line 289 of file sess-manager-impl.cpp.

◆ operator->()

SessionImplAPI * operator-> ( )
overridevirtualnoexcept

Access to the "current session", which actually is an SessionImpl instance.

This session object is created either by loading an existing session, or on demand by this accessor function here (when no session was loaded or created)

Note
any exceptions arising while building the basic session object(s) will halt the system.

Implements SessManager.

Definition at line 63 of file sess-manager-impl.cpp.

References SessManagerImpl::reset().

+ Here is the call graph for this function:
+ Inheritance diagram for SessManagerImpl:
+ Collaboration diagram for SessManagerImpl:

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