40#ifndef STEAM_FIXTURE_MODEL_PORT_REGISTRY_H
41#define STEAM_FIXTURE_MODEL_PORT_REGISTRY_H
125 using MPTable = std::map<PID, ModelPortDescriptor>;
146 ,
holder_(element_exposing_this_port)
Optional or switchable link to an existing object.
thin wrapper around a size_t hash ID used as primary key for all Asset objects.
structural asset corresponding to the part of the model forming a processing pipe for generating medi...
key abstraction: structural asset Created automatically as a sideeffect of building the structure of ...
ModelPortDescriptor records are used as actual storage within the model port registration table; they...
ModelPortDescriptor(PID pipe, StID element_exposing_this_port)
const StID holder() const
Management facility for tracking model ports.
ModelPortDescriptor const & definePort(PID pipe, StID element_exposing_this_port)
create and register a new model port entry, within the pending transaction
void rollback()
discard pending changes.
ModelPortDescriptor const & get(PID) const
basic access operation: access the descriptor of a currently valid model port.
void remove(PID)
remove a model port entry from the pending transaction
std::map< PID, ModelPortDescriptor > MPTable
bool contains(PID) const
does the transaction currently being built already contain a model port registration for the given ID...
static ModelPortRegistry & globalInstance()
access the globally valid registry instance.
static void shutdown()
globally deactivate access to model ports
static lib::OptionalRef< ModelPortRegistry > theGlobalRegistry
storage for the link to the global Registry instance currently in charge
static ModelPortDescriptor const & accessDescriptor(PID)
access the globally valid model port for the given pipe.
bool isRegistered(PID) const
static ModelPortRegistry * setActiveInstance(ModelPortRegistry &newRegistry)
switch the implicit link to the global ModelPort registry to point to the given implementation instan...
void clear()
schedule removal of all registry contents.
void commit()
activate pending model port changes.
Any copy and copy construction prohibited.
#define LUMIERA_ERROR_DECLARE(err)
Forward declare an error constant.
Lumiera error handling (C++ interface).
Organising the output data calculation possibilities.
Steam-Layer implementation namespace root.
a checked, switchable reference.
A "processing pipe" represented as Asset.
Asset representation of structural elements within the model.