Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
proc::mobject::session Namespace Reference

Description

Namespace of Session and user visible high-level objects.

Namespaces

 query
 
 test
 

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 shared_ptr< FixturePFix
 
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
< PlacementIndex
PPIdx
 
typedef PlacementIndex::PRef PRef
 
typedef QueryID const & QID
 
typedef Goal::QueryID QueryID
 
typedef MORef< BindingRBinding
 
typedef MORef< ForkRFork
 
typedef lib::ElementTracker
< asset::Sequence
SequenceTracker
 
typedef SessionServices< Types
< SessionServiceFetch,
SessionServiceMutate,
SessionServiceExploreScope,
SessionServiceMockIndex,
SessionServiceDefaults >
, SessManagerImpl, SessionImpl
SessionImplAPI
 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::Timeline
TimelineTracker
 

Enumerations

enum  ScopeQueryKind {
  CONTENTS,
  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
 Basic (abstracted) view of... 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  Fixture
 
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...
 
class  Segment
 For the purpose of building and rendering, the fixture (for each timeline) is partitioned such that each segment is structurally constant. More...
 
class  Segmentation
 For the purpose of building and rendering, the fixture (for each timeline) is partitioned such that each segment is structurally constant. 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". More...
 
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 More...
 
void intrusive_ptr_release (ScopePath *pathFrame)
 
 LUMIERA_ERROR_DECLARE (NO_PARENT_SCOPE)
 Parent scope of root not accessible. More...
 
 LUMIERA_ERROR_DECLARE (INVALID_SCOPE)
 Placement scope invalid and not locatable within model. More...
 
 LUMIERA_ERROR_DECLARE (EMPTY_SCOPE_PATH)
 Placement scope not locatable (empty model path) More...
 
 LUMIERA_ERROR_DECLARE (NOT_IN_SESSION)
 referring to a Placement not known to the current session More...
 
 LUMIERA_ERROR_DECLARE (PLACEMENT_TYPE)
 requested Placement (pointee) type not compatible with data or context More...
 
 LUMIERA_ERROR_DECLARE (NONEMPTY_SCOPE)
 Placement scope (still) contains other elements. More...
 
 LUMIERA_ERROR_DECLARE (CREATE_SESSION)
 unable to create basic session. More...
 
 LUMIERA_ERROR_DEFINE (EMPTY_SCOPE_PATH,"Placement scope not locatable (empty model path)")
 
 LUMIERA_ERROR_DEFINE (CREATE_SESSION,"unable to create basic session")
 
 LUMIERA_ERROR_DEFINE (INVALID_SCOPE,"Placement scope invalid and not locatable within model")
 
 LUMIERA_ERROR_DEFINE (NO_PARENT_SCOPE,"Parent scope of root not accessible")
 
 LUMIERA_ERROR_DEFINE (NOT_IN_SESSION,"referring to a Placement not known to the current session")
 
 LUMIERA_ERROR_DEFINE (PLACEMENT_TYPE,"requested Placement (pointee) type not compatible with data or context")
 
 LUMIERA_ERROR_DEFINE (NONEMPTY_SCOPE,"Placement scope (still) contains other elements")
 
function< bool(Placement< Fork >
const &)> 
match_specificFork (string const &forkID)
 yield a query predicate to pick a specific fork More...
 
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. More...
 
bool operator== (LocatingPin const &pin1, LocatingPin const &pin2)
 check for equivalent definition of a complete locating chain More...
 
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 More...
 
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

typedef MORef<Fork> RFork

Definition at line 76 of file proc/asset/sequence.hpp.

typedef MORef< Binding > RBinding

Definition at line 79 of file timeline.hpp.

Definition at line 49 of file nodefactory.hpp.

typedef lib::P< Media > PMedia

Definition at line 53 of file proc/mobject/session/clip.hpp.

Definition at line 54 of file proc/mobject/session/clip.hpp.

using PClip = Placement<Clip>

Definition at line 56 of file proc/mobject/session/clip.hpp.

Definition at line 99 of file fixture.hpp.

Definition at line 71 of file fork.hpp.

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

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

typedef QueryID const& QID

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

typedef PlacementIndex& PIdx

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

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.

typedef function<bool(Pla const&)> ContentFilter

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

typedef function<Explorer*()> ExplorerBuilder

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

typedef PlacementIndex& IndexLink(void)

Definition at line 74 of file placement-index-query-resolver.hpp.

Definition at line 98 of file placement-index.cpp.

Definition at line 99 of file placement-index.cpp.

Definition at line 100 of file placement-index.cpp.

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

Enumeration Type Documentation

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

struct proc::mobject::session::BuildID
+ Collaboration diagram for BuildID< PLA >:
struct proc::mobject::session::BuildID< Placement< MO, BMO > >
Class Members
typedef Id< MO > Type
typedef MO Target
+ Collaboration diagram for BuildID< Placement< MO, BMO > >:
struct proc::mobject::session::ServiceAccessPoint
+ Collaboration diagram for ServiceAccessPoint< API, IMPL >:
class proc::mobject::session::SessionServiceDefaults
+ Collaboration diagram for SessionServiceDefaults:

Function Documentation

LocatingPin* proc::mobject::session::cloneChain ( const unique_ptr< LocatingPin > &  chain)
inline

Definition at line 46 of file locatingpin.cpp.

References LocatingPin::clone().

Referenced by LocatingPin::operator=().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool proc::mobject::session::operator== ( LocatingPin const &  pin1,
LocatingPin const &  pin2 
)
inline

check for equivalent definition of a complete locating chain

Definition at line 182 of file locatingpin.hpp.

References LocatingPin::resolve().

+ Here is the call graph for this function:

proc::mobject::session::LUMIERA_ERROR_DEFINE ( NOT_IN_SESSION  ,
"referring to a Placement not known to the current session"   
)
proc::mobject::session::LUMIERA_ERROR_DEFINE ( PLACEMENT_TYPE  ,
"requested Placement (pointee) type not compatible with data or context"   
)
proc::mobject::session::LUMIERA_ERROR_DEFINE ( NONEMPTY_SCOPE  ,
"Placement scope (still) contains other elements"   
)
proc::mobject::session::LUMIERA_ERROR_DECLARE ( NOT_IN_SESSION  )

referring to a Placement not known to the current session

proc::mobject::session::LUMIERA_ERROR_DECLARE ( PLACEMENT_TYPE  )

requested Placement (pointee) type not compatible with data or context

proc::mobject::session::LUMIERA_ERROR_DECLARE ( NONEMPTY_SCOPE  )

Placement scope (still) contains other elements.

proc::mobject::session::LUMIERA_ERROR_DEFINE ( EMPTY_SCOPE_PATH  ,
"Placement scope not locatable (empty model path)"   
)
ScopePath proc::mobject::session::commonPrefix ( ScopePath const &  path1,
ScopePath const &  path2 
)

Definition at line 255 of file scope-path.cpp.

References ScopePath::appendScope(), ScopePath::length(), util::min(), and ScopePath::path_.

Referenced by ScopePath_test::checkRelations(), ScopePath_test::invalidPath(), and ScopePath_test::navigate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool proc::mobject::session::disjoint ( ScopePath const &  path1,
ScopePath const &  path2 
)

Definition at line 267 of file scope-path.cpp.

References ScopePath::empty(), ScopePath::isValid(), and ScopePath::path_.

Referenced by ScopePath_test::checkRelations(), and ScopePath_test::navigate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

proc::mobject::session::LUMIERA_ERROR_DECLARE ( EMPTY_SCOPE_PATH  )

Placement scope not locatable (empty model path)

bool proc::mobject::session::operator== ( ScopePath const &  path1,
ScopePath const &  path2 
)
inline

Definition at line 211 of file scope-path.hpp.

References ScopePath::path_.

bool proc::mobject::session::operator!= ( ScopePath const &  path1,
ScopePath const &  path2 
)
inline

Definition at line 217 of file scope-path.hpp.

void proc::mobject::session::intrusive_ptr_add_ref ( ScopePath *  pathFrame)
inline

management function for boost::intrusive_ptr to be picked up by ADL

Definition at line 227 of file scope-path.hpp.

References ScopePath::refcount_.

Referenced by QueryFocusStack_test::automaticFrameHandling(), ScopePath_test::check_RefcountProtection(), QueryFocusStack_test::clear(), QueryFocusStack_test::usePushedFrame(), and QueryFocusStack_test::verify_errorHandling().

+ Here is the caller graph for this function:

void proc::mobject::session::intrusive_ptr_release ( ScopePath *  pathFrame)
inline

Definition at line 234 of file scope-path.hpp.

References ScopePath::refcount_.

Referenced by QueryFocusStack_test::automaticFrameHandling(), ScopePath_test::check_RefcountProtection(), and QueryFocusStack_test::usePushedFrame().

+ Here is the caller graph for this function:

proc::mobject::session::LUMIERA_ERROR_DEFINE ( INVALID_SCOPE  ,
"Placement scope invalid and not locatable within model"   
)
proc::mobject::session::LUMIERA_ERROR_DEFINE ( NO_PARENT_SCOPE  ,
"Parent scope of root not accessible"   
)
proc::mobject::session::LUMIERA_ERROR_DECLARE ( NO_PARENT_SCOPE  )

Parent scope of root not accessible.

proc::mobject::session::LUMIERA_ERROR_DECLARE ( INVALID_SCOPE  )

Placement scope invalid and not locatable within model.

bool proc::mobject::session::operator== ( Scope const &  scope1,
Scope const &  scope2 
)
inline

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.

Definition at line 112 of file scope.hpp.

References Scope::anchor_.

bool proc::mobject::session::operator!= ( Scope const &  scope1,
Scope const &  scope2 
)
inline

Definition at line 118 of file scope.hpp.

References Scope::anchor_.

proc::mobject::session::LUMIERA_ERROR_DEFINE ( CREATE_SESSION  ,
"unable to create basic session"   
)
function<bool(Placement<Fork> const&)> proc::mobject::session::match_specificFork ( string const &  forkID)
inline

yield a query predicate to pick a specific fork

Definition at line 63 of file session-query.hpp.

Referenced by StructFactoryImpl::getFork_forSequence().

+ Here is the caller graph for this function:

_PickResult<FUNC>::FilterQuery proc::mobject::session::pickAllSuitable ( PlacementMO const &  scope,
FUNC  predicate 
)
inline

convenience shortcut to issue a SpecificContentsQuery, figuring out the actual return/filter type automatically, based on the predicate given as parameter

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

Referenced by ElementQuery::pick(), and ScopeQuery_test::run().

+ Here is the caller graph for this function:

_PickResult<FUNC>::Iterator proc::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.

References Query< RES >::resolveBy().

+ Here is the call graph for this function:

proc::mobject::session::LUMIERA_ERROR_DECLARE ( CREATE_SESSION  )

unable to create basic session.

void proc::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.

Referenced by SessionManager_test::run(), RebuildFixture_test::run(), and DeleteClip_test::run().

+ Here is the caller graph for this function:

bool proc::mobject::session::checkTestsession1 ( )
inline

Analyse the current (global) Session to verify the configuration of "Test-Session 1".

Definition at line 66 of file testsession1.hpp.

Referenced by SessionManager_test::run().

+ Here is the caller graph for this function:

const string proc::mobject::session::SESSION1_CLIP ( "TODO: some sensible way to refer to a clip"  )

Referenced by DeleteClip_test::run().

+ Here is the caller graph for this function: