Lumiera  0.pre.03
»edit your freedom«
Timeline Class Reference

#include "steam/asset/timeline.hpp"

Description

Todo:

this new Timeline API was invented about 2010 and remained in half finished state ever since.

we need some actual interface, beyond just creating timelines!

Todo:
2016 can confirm that we still want to go that route

Definition at line 100 of file timeline.hpp.

Static Public Member Functions

static PTimeline create (Asset::Ident const &idi, RBinding const &sequenceBinding)
 create and register a new Timeline instance
 
- Static Public Member Functions inherited from AutoRegistered< Timeline >
static PTarget create ()
 factory for creating smart-ptr managed TAR instances, automatically registered with the element-tracking registry.
 
static void deactivateRegistryLink ()
 
static bool is_attached_to (Registry const &someRegistry)
 
static void setRegistryInstance (Registry &registry_to_use)
 

Protected Member Functions

virtual void unlink ()
 release all links to other Asset objects held internally. More...
 
- Protected Member Functions inherited from Struct
 Struct (const Asset::Ident &idi)
 
- Protected Member Functions inherited from Asset
 Asset (const Ident &idi)
 Asset is a Interface class; usually, objects of concrete subclasses are created via specialised Factories. More...
 
virtual ~Asset ()=0
 
void defineDependency (PAsset parent)
 establish a connection between this and the given parent asset, denoting we are in some way dependent on the parent. More...
 
void defineDependency (Asset &parent)
 
virtual void unlink (IDA target)
 variant of unlink() dropping only the links to the given specific Asset, leaving all other links intact. More...
 

Private Types

typedef mobject::session::RBinding RBinding
 

Private Member Functions

 Timeline (Ident const &, RBinding const &)
 

Private Attributes

RBinding boundSequence_
 

Additional Inherited Members

- Public Types inherited from AutoRegistered< Timeline >
typedef P< Timeline > PTarget
 
typedef lib::ElementTracker< Timeline > Registry
 
typedef lib::OptionalRef< RegistryRegistryLink
 
- Public Member Functions inherited from Struct
virtual const ID< Struct > & getID () const
 < More...
 
- Public Member Functions inherited from Asset
bool enable (bool on=true)
 change the enabled status of this asset. More...
 
const vector< PAsset > & getDependant () const
 All the other assets requiring this asset to be functional. More...
 
const vector< PAsset > & getParents () const
 List of entities this asset depends on or requires to be functional. More...
 
bool isActive () const
 weather this asset is switched on and consequently included in the fixture and participates in rendering More...
 
virtual operator string () const
 
bool operator< (Asset const &oa) const
 
bool operator== (Asset const &oa) const
 
- Public Member Functions inherited from AutoRegistered< Timeline >
void detach ()
 detach this element from the element-tracking registry. More...
 
- Static Public Attributes inherited from Struct
static StructFactory retrieve
 storage for the static StructFactory instance
 
- Public Attributes inherited from Asset
const Ident ident
 Asset identification tuple.
 
- Protected Attributes inherited from Asset
vector< PAssetdependants
 
bool enabled
 
set< string > groups
 additional classification, selections or departments this asset belongs to. More...
 
const ID< Assetid
 Asset primary key.
 
const string longDesc
 user visible qualification of the thing, unit or concept represented by this asset. More...
 
vector< PAssetparents
 
const string shortDesc
 user visible Name-ID. More...
 
- Static Protected Attributes inherited from AutoRegistered< Timeline >
static RegistryLink getRegistry
 storage for the functor to link an AutoRegistered entity to the corresponding registration service
 

Constructor & Destructor Documentation

◆ Timeline()

Timeline ( Ident const &  idi,
RBinding const &  sequenceBinding 
)
private
Todo:
anything significant to do here???

Definition at line 42 of file timeline.cpp.

Referenced by Timeline::create().

+ Here is the caller graph for this function:

Member Function Documentation

◆ unlink()

void unlink ( )
protectedvirtual

release all links to other Asset objects held internally.

release all links to other dependent asset objects held internally and advise all parent assets to do so with the link to this asset.

The lifecycle of Asset objects is managed by smart pointers and the Asset manager. Calling unlink() breaks interconnections to other Assets in the central Object network comprising the session. Especially, the downward links to dependent entities are released, while the primary (upward) smart-ptr links to our prerequisites are still retained. The rationale is, after releasing these redundant or cyclic interlinking, when the AssetManager removes its DB entry for this asset, the smart pointer goes out of scope and causes unwinding of the whole dependency chain.

Note
we don't release upward links to parent assets, thus effectively keeping the parents alive, because frequently the accessibility of parent assets is part of our own contract. (e.g. media for clip assets)

Reimplemented from Asset.

Definition at line 65 of file timeline.cpp.

References AutoRegistered< TAR >::detach(), MORef< MO >::purge(), and Asset::unlink().

+ Here is the call graph for this function:
+ Inheritance diagram for Timeline:
+ Collaboration diagram for Timeline:

The documentation for this class was generated from the following files: