Lumiera  0.pre.03
»edit your freedom«
steam::mobject::session Namespace Reference

Description

Namespace of Session and user visible high-level objects.

Namespaces

Typedefs

typedef function< bool(Pla const &)> ContentFilter
 
typedef function< Explorer *()> ExplorerBuilder
 
using ForkID = lib::idi::EntryID< Fork >
 
typedef PlacementIndex::ID ID
 
typedef PlacementIndexIndexLink(void)
 
using PClip = Placement< Clip >
 
using PClipAsset = lib::P< asset::Clip >
 
typedef Placement< EffectPEffect
 
typedef PlacementIndex::ID PID
 
typedef PlacementIndexPIdx
 
typedef PlacementIndex::iterator PIter
 
typedef PlacementMO Pla
 
typedef mobject::PlacementMO PlacementMO
 
using PMedia = lib::P< Media >
 
typedef std::shared_ptr< PlacementIndexPPIdx
 
typedef PlacementIndex::PRef PRef
 
typedef QueryID const & QID
 
typedef Goal::QueryID QueryID
 
typedef MORef< BindingRBinding
 
typedef MORef< ForkRFork
 
typedef lib::ElementTracker< asset::SequenceSequenceTracker
 
typedef SessionServices< Types< SessionServiceFetch, SessionServiceMutate, SessionServiceExploreScope, SessionServiceMockIndex, SessionServiceDefaults >, SessManagerImpl, SessionImplSessionImplAPI
 actual configuration of the session implementation compound: forming an inheritance chain of all internal SesssionServices stacked on top of the SessionImpl class. More...
 
typedef lib::ElementTracker< asset::TimelineTimelineTracker
 

Enumerations

enum  ScopeQueryKind {
  CONTENTS = 0,
  CHILDREN,
  PARENTS,
  PATH
}
 

Classes

class  AbstractMO
 abstract base class of all MObjects for providing common services. More...
 
class  Allocation
 Interface (abstract): any objective, constraint or wish of placing a MObject in a specific way. More...
 
class  Auto
 Automation data for some parameter (i.e. More...
 
class  Binding
 Explicit link to bind a Sequence (container) to be used within the Session, either as contents of a top level Timeline, or as embedded MetaClip. More...
 
struct  BuildID
 Helper for building Placement-ID types. More...
 
struct  BuildID< Placement< MO, BMO > >
 
class  BusMO
 Model entity corresponding to a global pipe. More...
 
class  ChildExplorer
 Strategy: explore the structure just by following the given iterator; usually this yields an element's children. More...
 
class  Clip
 A user visible/editable Clip is a reference to a contiguous sequence of media data loaded as Asset into the current Session. More...
 
class  Constraint
 LocatingPin representing an directive by the user that must not be violated. More...
 
struct  ContentsQuery
 
class  DeepExplorer
 Strategy: explore the structure depth first. More...
 
class  DiscoveryQuery
 ABC to build Queries for placement-attached objects. More...
 
class  DummySessionConnection
 Scaffolding to drive the evolution of the Lumiera application. More...
 
class  Effect
 
class  ElementQuery
 Access point to session global search and query functions. More...
 
class  Explorer
 Interface: strategy for exploring the structure. More...
 
class  FixedLocation
 The most common case of positioning a MObject in the Session: directly specifying a constant position. More...
 
class  Fork
 A Fork serves as grouping device within the Session. More...
 
class  GeneratorMO
 A lksjaf. More...
 
class  Label
 Any sort of User visible Marker or Tag, used to mark time positions and ranges, or specific locations to attach other MObjects to. More...
 
class  LifecycleAdvisor
 Skeleton of operations conducting the session lifecycle sequences. More...
 
class  LocatingPin
 Positioning specification, possibly chained to further specifications. More...
 
class  Meta
 Meta-MObject doesn't represent real Media Content, but rather all sorts of Processing Instructions and other metadata, which can be placed and attached within the Model/Session. More...
 
class  MObjectFactory
 
struct  PathQuery
 
class  PlacementIndex
 Structured compound of Placement instances with lookup capabilities. More...
 
class  PlacementIndexQueryResolver
 Wrapper for the PlacementIndex, allowing to resolve scope contents discovery. More...
 
class  Plug
 LocatingPin for requesting connection to some Pipe. More...
 
class  QueryFocus
 Current focus location to use as point-of reference for contents and location discovery queries. More...
 
class  QueryFocusStack
 A custom stack holding ScopePath »frames«. More...
 
class  RelativeLocation
 
class  ResultSet
 on query, an individual result set is prepared to be explored by the invoking client code. More...
 
class  Root
 High-level model root element, corresponding to the global session wide scope. More...
 
class  Scope
 A Placement scope within the high-level-model. More...
 
class  ScopeLocator
 Singleton service establishing a link to relate any compound of nested placement scopes to the current session and the current focus for querying and exploring this structure. More...
 
class  ScopePath
 Sequence of nested scopes within the high-level model. More...
 
class  ScopeQuery
 Query a scope to discover it's contents or location. More...
 
struct  ServiceAccessPoint
 Access point to a single implementation-level API. More...
 
struct  ServiceAccessPoint< SessionServiceDefaults, IMPL >
 
struct  ServiceAccessPoint< SessionServiceExploreScope, IMPL >
 
struct  ServiceAccessPoint< SessionServiceFetch, IMPL >
 
struct  ServiceAccessPoint< SessionServiceMockIndex, IMPL >
 
struct  ServiceAccessPoint< SessionServiceMutate, IMPL >
 
class  SessionImpl
 Implementation class for the Session interface. More...
 
struct  SessionInterfaceModules
 Collection of implementation components, providing self-contained sub-elements exposed on the public Session API. More...
 
class  SessionServiceDefaults
 
struct  SessionServiceExploreScope
 Implementation-level service for issuing contents/discovery queries. More...
 
class  SessionServiceFetch
 Implementation-level service for resolving an Placement-ID. More...
 
class  SessionServiceMockIndex
 there is an implicit PlacementIndex available on a global level, by default implemented within the current session. More...
 
class  SessionServiceMutate
 Implementation-level service for resolving an Placement-ID. More...
 
class  SessionServices
 Collection of configured implementation-level services to provide by the Session. More...
 
class  SessManager
 creation, access and Session lifecycle Interface. More...
 
class  SessManagerImpl
 Session manager implementation class holding the actual smart pointer to the current Session impl. More...
 
class  SpecificContentsQuery
 from the session, based on a filter predicate. More...
 
class  UpExplorer
 Strategy: explore the structure upwards, ascending until reaching the root element. More...
 
class  Wish
 LocatingPin representing a low-priority directive by the user, to be fulfilled only if possible (and after satisfying the more important LocatingPins) More...
 

Functions

void buildTestsession1 ()
 Create a Test Session configuration usable for various Tests. More...
 
bool checkTestsession1 ()
 Analyse the current (global) Session to verify the configuration of "Test-Session 1".
 
LocatingPincloneChain (const unique_ptr< LocatingPin > &chain)
 
ScopePath commonPrefix (ScopePath const &path1, ScopePath const &path2)
 
bool disjoint (ScopePath const &path1, ScopePath const &path2)
 
void intrusive_ptr_add_ref (ScopePath *pathFrame)
 management function for boost::intrusive_ptr to be picked up by ADL
 
void intrusive_ptr_release (ScopePath *pathFrame)
 
 LUMIERA_ERROR_DECLARE (CREATE_SESSION)
 unable to create basic session.
 
 LUMIERA_ERROR_DEFINE (CREATE_SESSION, "unable to create basic session")
 
function< bool(Placement< Fork > const &)> match_specificFork (string const &forkID)
 yield a query predicate to pick a specific fork
 
bool operator!= (Scope const &scope1, Scope const &scope2)
 
bool operator!= (ScopePath const &path1, ScopePath const &path2)
 
bool operator== (Scope const &scope1, Scope const &scope2)
 as scopes are constituted by a "scope top" element (placement) registered within the PlacementIndex of the current session, equality is defined in terms of this defining placement.
 
bool operator== (LocatingPin const &pin1, LocatingPin const &pin2)
 check for equivalent definition of a complete locating chain
 
bool operator== (ScopePath const &path1, ScopePath const &path2)
 
template<typename FUNC >
_PickResult< FUNC >::FilterQuery pickAllSuitable (PlacementMO const &scope, FUNC predicate)
 convenience shortcut to issue a SpecificContentsQuery, figuring out the actual return/filter type automatically, based on the predicate given as parameter
 
template<typename FUNC >
_PickResult< FUNC >::Iterator pickAllSuitable (PlacementMO const &scope, FUNC predicate, QueryResolver const &resolver)
 convenience shortcut (variant), automatically to build and execute a suitable SpecificContentsQuery More...
 
const string SESSION1_CLIP ("TODO: some sensible way to refer to a clip")
 

Typedef Documentation

◆ Pla

typedef PlacementMO Pla
Note
all of this search implementation works on Placement<MObject> refs. Only finally, when accessing the iterator, a downcast to a more specific object type may happen. In this case, there is also a ContentFilter to prevent accessing a placement of a non-matching object type, by trying a dynamic cast beforehand. The instantiation of a suitably typed PlacementIndexQueryResolver::resolutionFunction ensures that these types match reliably the type of the issued query.

Definition at line 69 of file placement-index-query-resolver.cpp.

◆ SessionImplAPI

actual configuration of the session implementation compound: forming an inheritance chain of all internal SesssionServices stacked on top of the SessionImpl class.

Note
SessionImplAPI is actually used within the SessManagerImpl to create "the session" instance and expose it through the global Session PImpl

Definition at line 270 of file session-impl.hpp.

Enumeration Type Documentation

◆ ScopeQueryKind

Enumerator
CONTENTS 

discover any contained objects depth-first

CHILDREN 

discover the immediate children

PARENTS 

discover the enclosing scopes

PATH 

discover the path to root

Definition at line 110 of file scope-query.hpp.


Class Documentation

◆ steam::mobject::session::BuildID

struct steam::mobject::session::BuildID
+ Collaboration diagram for BuildID< PLA >:

◆ steam::mobject::session::BuildID< Placement< MO, BMO > >

struct steam::mobject::session::BuildID< Placement< MO, BMO > >
Class Members
typedef Id< MO > Type
typedef MO Target
+ Collaboration diagram for BuildID< Placement< MO, BMO > >:

◆ steam::mobject::session::ServiceAccessPoint

struct steam::mobject::session::ServiceAccessPoint
+ Collaboration diagram for ServiceAccessPoint< API, IMPL >:

◆ steam::mobject::session::SessionServiceDefaults

class steam::mobject::session::SessionServiceDefaults
+ Collaboration diagram for SessionServiceDefaults:

Function Documentation

◆ pickAllSuitable()

_PickResult<FUNC>::Iterator steam::mobject::session::pickAllSuitable ( PlacementMO const &  scope,
FUNC  predicate,
QueryResolver const &  resolver 
)
inline

convenience shortcut (variant), automatically to build and execute a suitable SpecificContentsQuery

Returns
iterator yielding placements of the type as defined through the parameter of the predicate

Definition at line 177 of file specific-contents-query.hpp.

◆ buildTestsession1()

void steam::mobject::session::buildTestsession1 ( )
inline

Create a Test Session configuration usable for various Tests.

This Session holds two Clips and corresponds to "Example1" in the UML design. All changes are done to the (global) current session.

Definition at line 55 of file testsession1.hpp.