Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
mobject.hpp
Go to the documentation of this file.
1/*
2 MOBJECT.hpp - Key Abstraction: A Media Object in the Session
3
4 Copyright (C)
5 2008, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
30#ifndef STEAM_MOBJECT_MOBJECT_H
31#define STEAM_MOBJECT_MOBJECT_H
32
33#include "steam/common.hpp"
36#include "steam/asset.hpp" //TODO finally not needed?
37#include "lib/p.hpp"
39
40#include <string>
41
42
43
45using proc_interface::IDA; //TODO finally not needed?
46//using proc_interface::PAsset; //TODO: only temporarily
48
49namespace steam {
50namespace mobject {
51
52 using std::string;
53
54 //NOBUG_DECLARE_FLAG (mobjectmem);
55
56
57 namespace session {
58 class MObjectFactory;
59 }
60
61
69 class MObject
70 : public Buildable,
72 {
73 protected:
75
77
78 mutable string shortID_;
79
80 MObject() ;
81 virtual ~MObject() ;
82
84
85
86 public:
88
93 string const& shortID() const;
94
96 virtual bool isValid() const =0;
97
98 virtual Duration& getLength() =0;
99
108 virtual bool isEquivalentTo (const MObject& oo) const =0;
109
110 friend bool operator== (MObject const& o1, MObject const& o2) { return o1.isEquivalentTo(o2); }
111
112 protected:
113 virtual string initShortID() const =0;
114
115 };
116
117
118
120
121
122}} // namespace steam::mobject
123#endif /*STEAM_MOBJECT_MOBJECT_H*/
Steam-Layer Interface: Assets.
Steam-Layer Interface: Asset Lookup and Organisation.
Visiting-tool mechanism configured specifically for the Builder.
Duration is the internal Lumiera time metric.
Facade for the Asset subsystem.
Marker Interface for classes visitable by Builder tools.
MObject is the interface class for all "Media Objects".
Definition mobject.hpp:72
string const & shortID() const
a short readable ID as a single name-token, denoting both the kind of MObject and some sort of instan...
Definition mobject.cpp:49
virtual string initShortID() const =0
friend bool operator==(MObject const &o1, MObject const &o2)
Definition mobject.hpp:110
virtual bool isEquivalentTo(const MObject &oo) const =0
needed for handling by lumiera::P
virtual bool isValid() const =0
MObject self-test (usable for asserting)
lib::time::Duration Duration
Definition mobject.hpp:74
virtual Duration & getLength()=0
static session::MObjectFactory create
Storage for the (single, static) MObject factory object.
Definition mobject.hpp:87
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Any copy and copy construction prohibited.
Definition nocopy.hpp:38
Namespace of Session and user visible high-level objects.
Definition sequence.hpp:65
Placement< MObject > PMO
Definition mobject.hpp:119
Steam-Layer implementation namespace root.
Customised refcounting smart pointer.
Core abstraction: placement of a media object into session context.
Basic set of definitions and includes commonly used together.
a family of time value like entities and their relationships.