Changeset 2c8ee05 in Lumiera

Timestamp:
2026-04-10T23:45:15Z (5 weeks ago)
Author:
Ichthyostega <prg@…>
Branches:
dev/play
Children:
7652ca0
Parents:
a0d83b4
git-author:
Ichthyostega <prg@…> (10/04/26 21:15:32)
git-committer:
Ichthyostega <prg@…> (10/04/26 23:45:15)
Message:

OutputSlot: validate and complete redesign (see #1395)

This is a breakthrough...
Using the realigned implementation structure in BufferProvider,
and especially the ability to establish an overarching context by
passing an connection-ID through the LocalTag in the BufferMetadata,
it was possible to resolve the longstanding mismatch buried deep within
the OutputSlot implementation.

Based on the new internal APIs in BufferProvider, it was thus possible
to setup an OututBufferProxy that acts as a hub to connect the
DataSink handles with the actual OutputSlot::Connection implementation.
This change allowed to rectify the convoluted control structure in
OutputSlot and finally to manage the Lifecycle properly. Furthermore,
one level of unnecessary implementation-inheritance could be removed,
so that it is no longer necessary to subclass OutputSlot in order to
configure the link to a specific output backend.

Using this redesigned internal structure, it was now fairly simple to
re-implement a tracking DiagnosticOutputSlot and then to verify proper
integration by passing the OutputSlotProtocol_test again.

(No files)

Note: See TracChangeset for help on using the changeset viewer.