Lumiera  0.pre.03
session.hpp File Reference

Go to the source code of this file.


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.

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

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>


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...


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


 unable to create basic session. More...


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