Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Mutation and management facility for model ports within the builder.
Model ports denote the points where output might possibly be produced. While client code accesses model ports only as immutable descriptors handled through an (opaque) reference, the builder is in charge of detecting and organising any (new) model ports arising as the result of the build process. Changes to the set of current model ports are to be activated with an atomic transactional switch.
builder::ModelPortRegistry thus acts as management interface and factory for model ports. A given instance of this registry can be promoted to be "the" model port registry reflecting the current active model ports. Within the Lumiera application, the builder subsystem cares for setting up such a registry, while all other parts of the system just access the current model ports through the mobject::ModelPort frontend.
Definition in file model-port-registry.hpp.
#include "lib/error.hpp"
#include "lib/optional-ref.hpp"
#include "steam/asset/pipe.hpp"
#include "steam/asset/struct.hpp"
#include "steam/mobject/model-port.hpp"
#include <map>
Classes | |
class | ModelPortRegistry::ModelPortDescriptor |
ModelPortDescriptor records are used as actual storage within the model port registration table; they are immutable value objects and never exposed to client code directly. More... | |
class | ModelPortRegistry |
Management facility for tracking model ports. More... | |
Functions | |
LUMIERA_ERROR_DECLARE (DUPLICATE_MODEL_PORT) | |
Attempt to define a new model port with an pipe-ID already denoting an existing port. | |
Namespaces | |
steam | |
Steam-Layer implementation namespace root. | |
steam::fixture | |
Fixture and low-level-Model. | |