Lumiera  0.pre.03
Session Class Referenceabstract

#include "proc/mobject/session.hpp"


The (current) Session holds all the user visible content to be edited and manipulated within the Lumiera Application.

From a users perspective, it is a collection of Media Objects (–> MObject) placed (–> Placement) onto virtual Tracks.

Opening a Session has effectively global consequences, because the Session defines the available Assets, and some kinds of Assets define default behaviour. Thus, access to the Session is similar to a Singleton, through Session::current Besides the SessionManager, several sub-interfaces are exposed as embedded components: DefaultsManger, timelines and sequences.

Any client should be aware that the Session can be closed, replaced and loaded. The only way to access the Session is via a "PImpl" smart pointer session::PSess (which indeed is a reference to the SessManager and is accessible as the static field Session::current). Clients shouldn't try to get a direct pointer or reference to the Session object.

Definition at line 107 of file session.hpp.

Public Member Functions

virtual MObjectRef attach (PMO const &placement)=0
virtual bool detach (PMO const &placement)=0
virtual session::PFixgetFixture ()=0
virtual MObjectRef getRoot ()=0
virtual bool isValid ()=0
virtual void rebuildFixture ()=0

Static Public Attributes

static session::SessManagercurrent
 access point to the current Session More...
static bool initFlag
 temporary fix for init problems More...

Public Attributes

DefaultsAccess defaults
 manages default configured objects More...
ElementsAccess elements
SequenceAccess sequences
 collection of sequences More...
TimelineAccess timelines
 collection of timelines (top level) More...

Protected Types

typedef lumiera::query::DefsManagerDefaultsAccess
typedef session::ElementQueryElementsAccess
typedef lib::RefArray< asset::PSequence > & SequenceAccess
typedef lib::RefArray< asset::PTimeline > & TimelineAccess

Protected Member Functions

 Session (DefaultsAccess, ElementsAccess, TimelineAccess, SequenceAccess) noexcept
virtual ~Session ()

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable ()=default
 NonCopyable (NonCopyable const &)=delete
 ~NonCopyable ()=default
NonCopyableoperator= (NonCopyable const &)=delete

Member Typedef Documentation

◆ DefaultsAccess

Definition at line 111 of file session.hpp.

◆ ElementsAccess

Definition at line 112 of file session.hpp.

◆ TimelineAccess

Definition at line 113 of file session.hpp.

◆ SequenceAccess

Definition at line 114 of file session.hpp.

Constructor & Destructor Documentation

◆ Session()

Session ( DefaultsAccess  defs,
ElementsAccess  quer,
TimelineAccess  tils,
SequenceAccess  seqs 

Definition at line 139 of file session.cpp.

◆ ~Session()

~Session ( )

Definition at line 152 of file session.cpp.

Member Function Documentation

◆ isValid()

◆ attach()

virtual MObjectRef attach ( PMO const &  placement)
pure virtual

Implemented in SessionImpl.

Referenced by SessionModifyParts_test::addForks(), SessionModifyParts_test::addObjects(), and AddClip_test::run().

+ Here is the caller graph for this function:

◆ detach()

virtual bool detach ( PMO const &  placement)
pure virtual

Implemented in SessionImpl.

◆ getRoot()

virtual MObjectRef getRoot ( )
pure virtual

Implemented in SessionImpl.

Referenced by SessionModifyParts_test::addObjects(), StructFactoryImpl::fabricate(), StructFactoryImpl::getFork_forSequence(), TimelineSequenceHandling_test::indirect_SequenceHandling(), and SessionModifyParts_test::removeParts().

+ Here is the caller graph for this function:

◆ getFixture()

virtual session::PFix& getFixture ( )
pure virtual

Implemented in SessionImpl.

Referenced by SessionStructure_test::verify_defaultStructure().

+ Here is the caller graph for this function:

◆ rebuildFixture()

virtual void rebuildFixture ( )
pure virtual

Implemented in SessionImpl.

Referenced by RebuildFixture_test::run().

+ Here is the caller graph for this function:

Member Data Documentation

◆ initFlag

bool initFlag

temporary fix for init problems

really solve the basic init of session manager TICKET #518

Definition at line 125 of file session.hpp.

Referenced by SessionServiceFetch::isAccessible(), SessManagerImpl::SessManagerImpl(), and SessManagerImpl::~SessManagerImpl().

◆ current

SessManager & current

access point to the current Session

the sole access point for all client code to the system-wide "current session".

Implemented as smart pointer to singleton implementation object, where the smart pointer is actually the SessionManager (which is singleton as well...).

Consequently, if you want to talk to the session manager, you use dot-notation, while you access the session object via arrow notation (e.g. Session::current->getFixture() )

Definition at line 127 of file session.hpp.

Referenced by SessionModifyParts_test::addForks(), SessionModifyParts_test::addObjects(), StreamTypeLifecycle_test::check_pristineState(), SessionManager_test::clearSession(), proc::cmd::COMMAND_DEFINITION(), DefsManagerImpl_test::create(), BasicPipe_test::create_using_default(), DefsManagerImpl_test::define_and_search(), BasicPipe_test::dependProcPatt(), StructFactoryImpl::fabricate(), MockTable::fabricate_Sequence_on_demand(), MockTable::fabricate_Timeline_on_demand(), DefsManager_test::failureCreatesNewDefault(), proc::mobject::session::test::find(), DefsManagerImpl_test::forget(), SessionManager_test::getCurrentSession(), StructFactoryImpl::getFork_forSequence(), TimelineSequenceHandling_test::indirect_SequenceHandling(), SessionServiceFetch::isAccessible(), SessionManager_test::resetSession(), DefsManager_test::retrieveSimpleDefault(), RebuildFixture_test::run(), AddClip_test::run(), DeleteClip_test::run(), SessionStructure_test::run(), TimelineSequenceHandling_test::run(), SessionModifyParts_test::run(), LookupPreconfigured< TY, BASE >::try_special_case(), SessionElementTracker_test::verify_cleanup(), TimelineSequenceHandling_test::verify_creation(), SessionStructure_test::verify_defaultStructure(), SessionElementTracker_test::verify_integration(), TimelineSequenceHandling_test::verify_removalBinding(), TimelineSequenceHandling_test::verify_removalSequence(), TimelineSequenceHandling_test::verify_removalTimeline(), TimelineSequenceHandling_test::verify_retrieval(), and DefsManager_test::verifyRemoval().

◆ defaults

◆ elements

ElementsAccess elements

Definition at line 130 of file session.hpp.

Referenced by StructFactoryImpl::getFork_forSequence().

◆ timelines

◆ sequences

+ Inheritance diagram for Session:
+ Collaboration diagram for Session:

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