Lumiera  0.pre.03
»edityourfreedom«
session.hpp File Reference

Go to the source code of this file.

Description

Primary Interface to the current Session.

The session interface can be used to discover session contents. Mostly, these objects within the session are MObject subclasses, but they are attached into the session by a Placement. Usually, you'd want to use the discovered objects to invoke operations on them; in most cases, invoking any mutating operation should be wrapped into a Command.

The Interface Session is abstract and only accessible via the static field Session::current, which actually refers to a SessManager singleton instance. The latter acts as smart ptr-to-Impl for accessing the current session, but at the same time exposes a lifecycle/management API.

Note
if interested in the interplay of Session, SessManager and the internal service APIs (SessionServices), you should have a look at session-service-access-test.cpp, as this test creates a complete but simplified mock setup of the session and session manager, without any access and synchronisation and similar concerns, to read top down.
See also
session-structure-test.cpp
timeline-sequence-handling-test.cpp
session-modify-parts-test.cpp

Definition in file session.hpp.

#include "proc/mobject/placement.hpp"
#include "proc/mobject/mobject-ref.hpp"
#include "common/query/defs-manager.hpp"
#include "lib/ref-array.hpp"
#include "lib/depend.hpp"
#include "lib/symbol.hpp"
#include "lib/p.hpp"
#include <memory>

Classes

class  Session
 The (current) Session holds all the user visible content to be edited and manipulated within the Lumiera Application. More...
 
class  SessManager
 creation, access and Session lifecycle Interface. More...
 

Typedefs

typedef session::SessManagerPSess
 acts as a "PImpl" smart ptr More...
 

Functions

 LUMIERA_ERROR_DECLARE (CREATE_SESSION)
 unable to create basic session. More...
 

Namespaces

 proc
 Proc-Layer implementation namespace root.
 
 proc::asset
 The asset subsystem of the Proc-Layer.
 
 proc::mobject
 Media-Objects, edit operations and high-level session.
 
 proc::mobject::session
 Namespace of Session and user visible high-level objects.