Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
Session Class Referenceabstract

#include "steam/mobject/session.hpp"

Description

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.

Note
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 100 of file session.hpp.

Static Public Attributes

static bool initFlag = false
 temporary fix for init problems
 
static session::SessManagercurrent = theSessionManager()
 access point to the current Session
 

Public Attributes

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

Public Member Functions

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

Protected Types

typedef lumiera::query::DefsManagerDefaultsAccess
 
typedef session::ElementQueryElementsAccess
 
typedef std::vector< asset::PTimeline > const & TimelineAccess
 
typedef std::vector< asset::PSequence > const & SequenceAccess
 

Protected Member Functions

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

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ Session()

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

Definition at line 130 of file session.cpp.

◆ ~Session()

~Session ( )
protectedvirtual

Definition at line 143 of file session.cpp.

Member Typedef Documentation

◆ DefaultsAccess

Definition at line 104 of file session.hpp.

◆ ElementsAccess

Definition at line 105 of file session.hpp.

◆ TimelineAccess

typedef std::vector<asset::PTimeline> const& TimelineAccess
protected

Definition at line 106 of file session.hpp.

◆ SequenceAccess

typedef std::vector<asset::PSequence> const& SequenceAccess
protected

Definition at line 107 of file session.hpp.

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 fixture::PFixture & 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 = false
static

temporary fix for init problems

Todo:
really solve the basic init of session manager TICKET #518

Definition at line 118 of file session.hpp.

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

◆ current

SessManager & current = theSessionManager()
static

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 120 of file session.hpp.

Referenced by SessionModifyParts_test::addForks(), SessionModifyParts_test::addObjects(), StreamTypeLifecycle_test::check_pristineState(), SessionManager_test::clearSession(), steam::cmd::COMMAND_DEFINITION(), DefsManagerImpl_test::create(), BasicPipe_test::create_using_default(), DefsManagerImpl_test::define_and_search(), BasicPipe_test::dependProcPatt(), StructFactoryImpl::fabricate(), StructFactoryImpl::fabricate(), MockTable::fabricate_Sequence_on_demand(), MockTable::fabricate_Timeline_on_demand(), DefsManager_test::failureCreatesNewDefault(), steam::mobject::session::test::anonymous_namespace{defs-manager-impl-test.cpp}::find(), steam::mobject::session::test::find(), DefsManagerImpl_test::forget(), SessionManager_test::getCurrentSession(), StructFactoryImpl::getFork_forSequence(), TimelineSequenceHandling_test::indirect_SequenceHandling(), SessionServiceFetch::isAccessible(), SessionModifyParts_test::removeParts(), SessionManager_test::resetSession(), DefsManager_test::retrieveSimpleDefault(), RebuildFixture_test::run(), AddClip_test::run(), DeleteClip_test::run(), SessionModifyParts_test::run(), SessionStructure_test::run(), TimelineSequenceHandling_test::run(), LookupPreconfigured::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 123 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: