lumiera_documentation/doc/devel/uml/BoUML-diagrams.txt
Ichthyostega 216ab525fd OutputSlot: integration with buffer management (+documentation)
Within the reworked design of the `OutputSlot` a proxy implementation
of the `BufferProvider` API is used (class `OutputBufferProxy`).

After analysis of the invocation patterns, I concluded that it seems adequate
to attach the special-purpose metadata generated by this integration
to the generic system of thread-local replicated `BufferMetadata` storage.

However, since thread-local instances are effectively static(global),
I was concerned that unit-testing might be impeded by accumulation of
stale metadata in the store linked to the main thread. Thus I created
a special configuration variant to retain the previously used setup
for the sake of unit testing (which applies especially to use of the
`DiagnosticOutputSlot`). Using a `SimpleBufferStateRegistry` for in
that case has the benefit that simply a local instance can be used
in the test and all metadata will be discarded afterwards.

Furthermore the factory syntax for obtaining an `OutputSlot` was improved,
drawing on the recent changes to `lib::ScopedCollection`.

Also I looked through some of the documentation and updated
the UML sequence diagram to reflect `OutputSlot`'s improved internal structure
2026-05-31 01:44:54 +02:00

52 lines
2.5 KiB
Text

Initially and until 2015, Lumiera used the "BoUML" software
to create diagrams for use in the documentation (mostly TiddlyWiki).
BoUML went closed source and thus we'll discontinue our model and
start over with KDE-Umbrello.
The following are the BoUML generated diagrams used in the TiddlyWiki.
On occasion, we'll replace them by drawings from our current UML model.
(we use UML as a drawing and documentation tool, not for code generation)
128005: componentdiagram 128005 "Overview"
132229: classdiagram 128133 "Session structure"
128138: classdiagram 128181 "File Mapping"
128389: classdiagram 128389 "Render Entities"
128901: collaborationdiagram 128517 "build process"
129029: classdiagram 128645 "Controller Entities"
128901: classdiagram 129285 "Builder Tool (Visitor)"
128901: activitydiagram 129413 "build flow"
129029: activitydiagram 129541 "the render configuration flow"
128645: deploymentdiagram 129797 "Source Overview"
128005: componentdiagram 130053 "proc-components"
128517: classdiagram 130181 "Hierarchy"
128133: classdiagram 130309 "Asset Kinds"
128133: classdiagram 130437 "Media-Asset Relations"
128005: componentdiagram 130693 "backend-components"
129157: usecasediagram 130821 "backend use cases"
129157: classdiagram 130949 "interface components"
128133: classdiagram 131077 "Proc-Asset Relations"
128133: classdiagram 131205 "Struct-Asset Relations"
131077: classdiagram 131461 "Rules access"
131077: componentdiagram 131589 "components"
131077: usecasediagram 131717 "when to query"
131077: collaborationdiagram 131845 "\"default\" object"
128517: classdiagram 132485 "Stream Type Framework"
128005: classdiagram 132741 "TimelineSequences"
128901: classdiagram 132868 "Builder Entities"
128517: classdiagram 132869 "Layer Separation Interface"
129029: classdiagram 134021 "Command structure"
129029: statediagram 135173 "Command lifecycle"
132357: classdiagram 136325 "Focus of Query"
132229: classdiagram 136453 "Session backbone"
132229: classdiagram 136581 "MObjectRef"
131077: classdiagram 137733 "Query Interface"
132229: objectdiagram 138885 "ModelAssetRelations"
128133: classdiagram 139141 "Meta-Asset Relations"
128133: classdiagram 140293 "TypedLookup"
128517: classdiagram 141445 "Advice entities"
128517: objectdiagram 141573 "Advice solving"
128517: classdiagram 142725 "Time flavours"
133637: classdiagram 143877 "Player Entities"
133637: objectdiagram 144005 "Play Process Structure"
128773: classdiagram 158213 "UIBus"