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

Description

Media-Objects, edit operations and high-level session.

Todo:
is this interface or implementation ??

Namespaces

 _mapping
 
 builder
 Namespace of the Builder, transforming high-level into low-level.
 
 controller
 
 session
 Namespace of Session and user visible high-level objects.
 
 test
 

Typedefs

typedef MORef< MObjectMObjectRef
 
typedef Placement
< session::Binding,
session::Meta
PBinding
 
typedef Placement
< session::BusMO,
session::Meta
PBus
 
typedef Placement
< session::Fork, session::Meta
PFork
 
typedef OutputDesignation::PID PID
 
typedef Placement< MObjectPlacementMO
 
typedef PlacementRef< MObjectPlaRef
 TODO: as of 5/09 the idea is to phase out direct dependency on the placement class and recast those dependencies in terms of PlacementRef. More...
 
typedef Placement< MObjectPMO
 
typedef OutputDesignation::PPipe PPipe
 
typedef Placement
< session::Root, session::Meta
PRoot
 
typedef session::SessManagerPSess
 acts as a "PImpl" smart ptr More...
 
typedef PlacementRef< MObjectRefPlacement
 frequently-used shorthand More...
 
typedef
OutputDesignation::TargetSpec 
TargetSpec
 

Classes

struct  AbsoluteSpec
 
class  Buildable
 Marker Interface for classes visitable by Builder tools. More...
 
class  BuilderFacade
 Provides unified access to the builder functionality. More...
 
class  ExplicitPlacement
 Special kind of Placement, where the location of the MObject has been nailed down to a fixed position. More...
 
struct  IndirectSpec
 
singleton  Interpolator
 Provides the implementation for getting the actual value of a time varying or automated effect/plugin parameter. More...
 
class  MObject
 MObject is the interface class for all "Media Objects". More...
 
class  ModelPort
 Handle denoting a point within the model, where actually output data can be pulled. More...
 
class  MORef
 An active (smart-ptr like) external reference to a specifically placed MObject "instance" within the session. More...
 
class  OutputDesignation
 Descriptor to denote the desired target of produced media data. More...
 
class  OutputMapping
 OutputMapping is a facility to resolve output designations. More...
 
singleton  Parameter
 Descriptor and access object for a plugin parameter. More...
 
class  ParamProvider
 A facility to get the actual value of a plugin/effect parameter. More...
 
class  Placement
 A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location where the MObject is supposed to be within the Session/Model. More...
 
class  Placement< MObject, MObject >
 this specialisation forms the root of all placements and defines all of Placement's actual functionality. More...
 
singleton  PlacementRef
 Reference tag denoting a placement attached to the session. More...
 
struct  RelativeSpec
 
class  Session
 The (current) Session holds all the user visible content to be edited and manipulated within the Lumiera Application. More...
 

Functions

string format_PlacementID (Placement< MObject > const &pla)
 
string format_PlacementID (PlacementMO const &)
 
template<class MOX , class MOY >
bool isEquivalentPlacement (MORef< MOX > const &ref1, MORef< MOY > const &ref2)
 check if the two references actually denote an equivalent placement More...
 
bool isSameDef (PlacementMO const &, PlacementMO const &)
 compare the properties of placement More...
 
template<class MOX , class MOY >
bool isSharedPointee (MORef< MOX > const &ref1, MORef< MOY > const &ref2)
 check if the two references actually share ownership on the same underlying MObject (as opposed to referring to the same Placement, which is tested by operator== ) More...
 
 LUMIERA_ERROR_DECLARE (BUILDER_LIFECYCLE)
 Builder activated while in non operational state. More...
 
 LUMIERA_ERROR_DECLARE (INVALID_MODEL_PORT)
 Referral to unknown model port. More...
 
 LUMIERA_ERROR_DECLARE (UNCONNECTED_MODEL_PORT)
 Attempt to operate on an existing but unconnected model port. More...
 
 LUMIERA_ERROR_DECLARE (BOTTOM_MOBJECTREF)
 NIL MObjectRef encountered. More...
 
 LUMIERA_ERROR_DECLARE (INVALID_PLACEMENTREF)
 unresolvable placement reference, or of incompatible type More...
 
 LUMIERA_ERROR_DECLARE (BOTTOM_PLACEMENTREF)
 NIL placement-ID marker encountered. More...
 
 LUMIERA_ERROR_DEFINE (BUILDER_LIFECYCLE,"Builder activated while in non operational state")
 
 LUMIERA_ERROR_DEFINE (INVALID_PLACEMENTREF,"unresolvable placement reference, or of incompatible type")
 
 LUMIERA_ERROR_DEFINE (BOTTOM_PLACEMENTREF,"NIL placement-ID marker encountered.")
 
 LUMIERA_ERROR_DEFINE (BOTTOM_MOBJECTREF,"NIL MObjectRef encountered")
 
 LUMIERA_ERROR_DEFINE (INVALID_MODEL_PORT,"Referral to unknown model port")
 
 LUMIERA_ERROR_DEFINE (UNCONNECTED_MODEL_PORT,"Attempt to operate on an existing but unconnected model port")
 
const char * ON_SESSION_END ("ON_SESSION_END")
 
const char * ON_SESSION_INIT ("ON_SESSION_INIT")
 
const char * ON_SESSION_READY ("ON_SESSION_READY")
 
const char * ON_SESSION_START ("ON_SESSION_START")
 

Variables

const char * ON_SESSION_END
 triggered before discarding an existing session More...
 
const char * ON_SESSION_INIT
 triggered when initialising a new session, after adding content More...
 
const char * ON_SESSION_READY
 triggered after session is completely functional and all APIs are open. More...
 
const char * ON_SESSION_START
 triggered before loading any content into a newly created session More...
 

Typedef Documentation

Definition at line 367 of file mobject-ref.hpp.

typedef Placement< MObject > PMO

Definition at line 122 of file mobject.hpp.

Definition at line 65 of file output-designation.cpp.

Definition at line 66 of file output-designation.cpp.

frequently-used shorthand

Definition at line 57 of file output-designation.hpp.

Todo:
cleanup uses of ref-to-placement. See Ticket #115

Definition at line 269 of file placement.hpp.

Definition at line 83 of file bus-mo.hpp.

Definition at line 142 of file fork.hpp.

TODO: as of 5/09 the idea is to phase out direct dependency on the placement class and recast those dependencies in terms of PlacementRef.

Definition at line 73 of file locatingpin.hpp.

Definition at line 100 of file root.hpp.

acts as a "PImpl" smart ptr

Definition at line 81 of file session.hpp.


Class Documentation

singleton proc::mobject::Interpolator
+ Collaboration diagram for Interpolator< VAL >:

Function Documentation

proc::mobject::LUMIERA_ERROR_DEFINE ( INVALID_MODEL_PORT  ,
"Referral to unknown model port"   
)
proc::mobject::LUMIERA_ERROR_DEFINE ( UNCONNECTED_MODEL_PORT  ,
"Attempt to operate on an existing but unconnected model port"   
)
proc::mobject::LUMIERA_ERROR_DEFINE ( BUILDER_LIFECYCLE  ,
"Builder activated while in non operational state"   
)
proc::mobject::LUMIERA_ERROR_DECLARE ( BUILDER_LIFECYCLE  )

Builder activated while in non operational state.

proc::mobject::LUMIERA_ERROR_DEFINE ( INVALID_PLACEMENTREF  ,
"unresolvable placement  reference,
or of incompatible type"   
)
proc::mobject::LUMIERA_ERROR_DEFINE ( BOTTOM_PLACEMENTREF  ,
"NIL placement-ID marker encountered."   
)
proc::mobject::LUMIERA_ERROR_DEFINE ( BOTTOM_MOBJECTREF  ,
"NIL MObjectRef encountered"   
)
proc::mobject::LUMIERA_ERROR_DECLARE ( BOTTOM_MOBJECTREF  )

NIL MObjectRef encountered.

bool proc::mobject::isSharedPointee ( MORef< MOX > const &  ref1,
MORef< MOY > const &  ref2 
)
inline

check if the two references actually share ownership on the same underlying MObject (as opposed to referring to the same Placement, which is tested by operator== )

Definition at line 378 of file mobject-ref.hpp.

References MORef< MO >::getPlacement(), and MORef< MO >::isValid().

Referenced by SessionModifyParts_test::addObjects(), and SessionElementQuery_test::run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool proc::mobject::isEquivalentPlacement ( MORef< MOX > const &  ref1,
MORef< MOY > const &  ref2 
)
inline

check if the two references actually denote an equivalent placement

Definition at line 387 of file mobject-ref.hpp.

References MORef< MO >::getPlacement(), isSameDef(), and MORef< MO >::isValid().

Referenced by SessionModifyParts_test::addObjects().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

proc::mobject::LUMIERA_ERROR_DECLARE ( INVALID_MODEL_PORT  )

Referral to unknown model port.

proc::mobject::LUMIERA_ERROR_DECLARE ( UNCONNECTED_MODEL_PORT  )

Attempt to operate on an existing but unconnected model port.

proc::mobject::LUMIERA_ERROR_DECLARE ( INVALID_PLACEMENTREF  )

unresolvable placement reference, or of incompatible type

proc::mobject::LUMIERA_ERROR_DECLARE ( BOTTOM_PLACEMENTREF  )

NIL placement-ID marker encountered.

string proc::mobject::format_PlacementID ( Placement< MObject > const &  pla)

Definition at line 69 of file placement.cpp.

References Placement< MO, B >::getID().

Referenced by PlacementHierarchy_test::run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool isSameDef ( PlacementMO const &  ,
PlacementMO const &   
)

compare the properties of placement

Returns
true if all the LocatingPin entries in both placements are semantically equivalent.

Definition at line 77 of file placement.cpp.

References Placement< MO, B >::getID().

Referenced by PlacementIndex_test::checkSimpleAccess(), and isEquivalentPlacement().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

string proc::mobject::format_PlacementID ( PlacementMO const &  )
const char* proc::mobject::ON_SESSION_START ( "ON_SESSION_START"  )
LifecycleHook, to perform all the basic setup for a new session, prior to adding any specific data, configuration or content. Any subsystems requiring to (re)-initialise for a new session should register here. When this hook is activated, the session implementation facilities are available and the corresponding interfaces are already opened and accessible, but the session itself is completely pristine and empty.
Note
plugins providing additional facilities to be used by content of a (persisted) session should register their basic setup functions using this hook, which can be done via the C interface functions defined in lifecycle.h
const char* proc::mobject::ON_SESSION_INIT ( "ON_SESSION_INIT"  )
LifecycleHook, to perform any initialisation, wiring and registrations necessary to get the session into a usable state. When activated, the specific session content and configuration has already be loaded. Any subsystems requiring to build some indices or wiring to keep track of the session's content should register here.
const char* proc::mobject::ON_SESSION_READY ( "ON_SESSION_READY"  )
LifecycleHook, to perform post loading tasks, requiring an already completely usable and configured session to be in place. When activated, the session is completely restored according to the standard or persisted definition and any access interfaces are already opened and enabled. Scripts and the GUI might even be accessing the session in parallel. Subsystems intending to perform additional processing should register here, if requiring fully functional client side APIs. Examples would be statistics gathering, validation or auto-correction of the session's contents.
const char* proc::mobject::ON_SESSION_END ( "ON_SESSION_END"  )
LifecycleHook, to perform any state saving, deregistration or de-activation necessary before bringing down an existing session. When invoked, the session is still fully valid and functional, but the GUI/external access has already been closed.
Todo:
specify how this is related to "saving". Is there a way for subsystems to add specific/internal information into the persisted state, besides actually attaching data to objects within the session?

Variable Documentation

const char* ON_SESSION_START

triggered before loading any content into a newly created session

Referenced by LifecycleAdvisor::pullUp().

const char* ON_SESSION_INIT

triggered when initialising a new session, after adding content

Referenced by LifecycleAdvisor::pullUp().

const char* ON_SESSION_READY

triggered after session is completely functional and all APIs are open.

Referenced by LifecycleAdvisor::pullUp().

const char* ON_SESSION_END

triggered before discarding an existing session

Referenced by LifecycleAdvisor::shutDown().