Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
MObject Class Referenceabstract

#include "steam/mobject/mobject.hpp"

Description

MObject is the interface class for all "Media Objects".

All the contents and elements that can be placed and manipulated and finally rendered within Lumiera's high-level model and Session are MObjects.

Definition at line 69 of file mobject.hpp.

Static Public Attributes

static session::MObjectFactory create
 Storage for the (single, static) MObject factory object.
 

Public Member Functions

string const & shortID () const
 a short readable ID as a single name-token, denoting both the kind of MObject and some sort of instance identity.
 
virtual bool isValid () const =0
 MObject self-test (usable for asserting)
 
virtual DurationgetLength ()=0
 
virtual bool isEquivalentTo (const MObject &oo) const =0
 needed for handling by lumiera::P
 
- Public Member Functions inherited from Visitable< builder::BuilderTool >
virtual ReturnType apply (builder::BuilderTool &)=0
 to be defined by the DEFINE_PROCESSABLE_BY macro in all classes wanting to be treated by some tool
 

Friends

class session::MObjectFactory
 
bool operator== (MObject const &o1, MObject const &o2)
 

Protected Types

typedef lib::time::Duration Duration
 
- Protected Types inherited from Visitable< builder::BuilderTool >
using ToolBase = TOOL::ToolBase
 

Protected Member Functions

 MObject ()
 
virtual ~MObject ()
 
virtual string initShortID () const =0
 
- Protected Member Functions inherited from Visitable< builder::BuilderTool >
virtual ~Visitable ()
 

Protected Attributes

Duration length_
 
string shortID_
 

Additional Inherited Members

- Public Types inherited from Visitable< builder::BuilderTool >
using ReturnType = TOOL::ReturnType
 
- Static Protected Member Functions inherited from Visitable< builder::BuilderTool >
static ReturnType dispatchOp (TAR &target, builder::BuilderTool &tool)
 
- Private Member Functions inherited from NonCopyable
 ~NonCopyable ()=default
 
 NonCopyable ()=default
 
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Constructor & Destructor Documentation

◆ MObject()

MObject ( )
protected

Definition at line 38 of file mobject.cpp.

◆ ~MObject()

~MObject ( )
protectedvirtual

Definition at line 44 of file mobject.cpp.

Member Typedef Documentation

◆ Duration

typedef lib::time::Duration Duration
protected

Definition at line 74 of file mobject.hpp.

Member Function Documentation

◆ shortID()

string const & shortID ( ) const

a short readable ID as a single name-token, denoting both the kind of MObject and some sort of instance identity.

Not necessarily unique but should be reasonable unique in most cases

Definition at line 49 of file mobject.cpp.

References MObject::initShortID(), and MObject::shortID_.

Referenced by MObjectInterface_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isValid()

virtual bool isValid ( ) const
pure virtual

MObject self-test (usable for asserting)

Implemented in Binding, BusMO, Clip, Fork, GeneratorMO, Label, Root, and DummyMO.

Referenced by PlacementIndex::Validator::checkRoot(), MObjectInterface_test::run(), MObjectRef_test::run(), PlacementObjectIdentity_test::run(), and AbstractMO::throwIfInvalid().

+ Here is the caller graph for this function:

◆ getLength()

virtual Duration & getLength ( )
pure virtual

Implemented in AbstractMO.

Referenced by MObjectInterface_test::run().

+ Here is the caller graph for this function:

◆ isEquivalentTo()

virtual bool isEquivalentTo ( const MObject oo) const
pure virtual

needed for handling by lumiera::P

Deprecated:
2025 this seems not well motivated. lumiera::P was created to support comparisons, and now we do not know how to implement them, and thus we make the operation virtual. Are MObjects conceived as having value semantics? For reference semantics, comparing the »identity« should be sufficient
Note
2025 changed to a predicate to cope with C++20 reversed operators.

Implemented in AbstractMO.

◆ initShortID()

virtual string initShortID ( ) const
protectedpure virtual

Implemented in AbstractMO, Auto< VAL >, Binding, BusMO, Clip, Effect, Fork, GeneratorMO, Label, Meta, Root, and DummyMO.

Referenced by MObject::shortID().

+ Here is the caller graph for this function:

Member Data Documentation

◆ length_

Duration length_
protected

Definition at line 76 of file mobject.hpp.

Referenced by AbstractMO::getLength(), Clip::isValid(), and Clip::setupLength().

◆ shortID_

string shortID_
mutableprotected

Definition at line 78 of file mobject.hpp.

Referenced by MObject::shortID().

◆ create

Friends And Related Symbol Documentation

◆ session::MObjectFactory

friend class session::MObjectFactory
friend

Definition at line 83 of file mobject.hpp.

◆ operator==

bool operator== ( MObject const &  o1,
MObject const &  o2 
)
friend

Definition at line 110 of file mobject.hpp.

+ Inheritance diagram for MObject:
+ Collaboration diagram for MObject:

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