Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Session Class Referenceabstract

#include "proc/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 108 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::DefsManager
DefaultsAccess
 
typedef session::ElementQueryElementsAccess
 
typedef lib::RefArray
< asset::PSequence > & 
SequenceAccess
 
typedef lib::RefArray
< asset::PTimeline > & 
TimelineAccess
 

Protected Member Functions

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

Member Typedef Documentation

Definition at line 112 of file session.hpp.

Definition at line 113 of file session.hpp.

Definition at line 114 of file session.hpp.

Definition at line 115 of file session.hpp.

Constructor & Destructor Documentation

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

Definition at line 130 of file session.cpp.

~Session ( )
protectedvirtual

Definition at line 143 of file session.cpp.

Member Function Documentation

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:

virtual bool detach ( PMO const &  placement)
pure virtual

Implemented in SessionImpl.

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:

virtual session::PFix& getFixture ( )
pure virtual

Implemented in SessionImpl.

Referenced by SessionStructure_test::verify_defaultStructure().

+ Here is the caller graph for this function:

virtual void rebuildFixture ( )
pure virtual

Implemented in SessionImpl.

Referenced by RebuildFixture_test::run().

+ Here is the caller graph for this function:

Member Data Documentation

bool initFlag
static

temporary fix for init problems

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

Definition at line 126 of file session.hpp.

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

SessManager & current
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 128 of file session.hpp.

Referenced by SessionModifyParts_test::addForks(), SessionModifyParts_test::addObjects(), SessionManager_test::clearSession(), 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().

ElementsAccess elements

Definition at line 131 of file session.hpp.

Referenced by StructFactoryImpl::getFork_forSequence().

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

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