Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Organising the output data calculation possibilities.
Model ports are conceptual entities, denoting the points where output might possibly be produced. There is an actual representation, a collection of small descriptor objects managed by the Fixture and organised within the registry datastructure. Thus, while the actual ModelPort descriptor entities are located within and managed by the Fixture – model port as a concept spans the high-level and low-level view. A model port can be associated both to a pipe within a timeline in the HighLevelModel, as well as to denote a set of corresponding exit nodes within the segments of the render nodes network. Model ports are keyed by Pipe-ID and thus are bound to be unique within the application.
A model port is rather derived than configured; it emerges during the build process when a pipe claims an OutputDesignation and some other entity actually uses this designation as a target, either directly or indirectly. This match of provision and usage is detected by the Builder and produces an entry in the fixture's ModelPortTable. Because of the 1:1 association with a pipe, each model port has an associated StreamType.
Because model ports are discovered this way, dynamically during the build process, at some point there is a transactional switch to promote the new configuration to become the valid current model port configuration. After that switch, model ports are immutable.
Model ports are to be accessed, enumerated and grouped in various ways, because each port belongs to a specific timeline and is used to produce data of a single StreamType solely. But all those referrals, searching and grouping happens only after the build process has discovered all model ports currently available. Thus actually the ModelPort elements handed out to client code are just smart-handles, accessing a global ModelPortRegistry behind the scenes. Validity of these handles will be checked on each access. The actual model port descriptors are owned and managed by the fixture;
Definition in file model-port.hpp.
Classes | |
class | ModelPort |
Handle designating a point within the model, where actually output data can be pulled. More... | |
Functions | |
LUMIERA_ERROR_DECLARE (INVALID_MODEL_PORT) | |
Referral to unknown model port. | |
LUMIERA_ERROR_DECLARE (UNCONNECTED_MODEL_PORT) | |
Attempt to operate on an existing but unconnected model port. | |
Namespaces | |
steam | |
Steam-Layer implementation namespace root. | |
steam::mobject | |
Media-Objects, edit operations and high-level session. | |