lumiera_documentation/src/vault/mem
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
..
buffer-local-tag.hpp BufferProvider: relocate into Vault Layer 2026-03-08 00:53:41 +01:00
buffer-metadata.hpp BufferProvider: implement locking and data synchronisation 2026-04-20 01:40:15 +02:00
buffer-provider-setup.hpp BufferProvider: relocate into Vault Layer 2026-03-08 00:53:41 +01:00
buffer-provider.cpp BufferProvider: perform a successful stress-test 2026-05-29 18:45:01 +02:00
buffer-provider.hpp BufferProvider: successfully complete the load test (see #1396) 2026-05-30 01:51:44 +02:00
buffer-proxy-adaptor.hpp OutputSlot: integration with buffer management (+documentation) 2026-05-31 01:44:54 +02:00
buffhandle.hpp BufferProvider: obvious convenience function 2026-03-24 23:48:13 +01:00
diagnostic-buffer-provider.cpp BufferProvider: implement locking and data synchronisation 2026-04-20 01:40:15 +02:00
diagnostic-buffer-provider.hpp BufferProvider: new reworked implementation validated and complete (closes: #1410) 2026-04-12 23:17:53 +02:00
engine-buffer-allocator.hpp BufferProvider: successfully complete the load test (see #1396) 2026-05-30 01:51:44 +02:00
engine-buffer-manager.cpp BufferProvider: integrate the new race protection feature 2026-05-24 01:38:35 +02:00
engine-buffer-manager.hpp BufferProvider: investigate use of the ComputationalLoad with a memory buffer 2026-05-28 05:49:15 +02:00
engine-buffer-metadata.hpp BufferProvider: implement locking and data synchronisation 2026-04-20 01:40:15 +02:00
extent-family.hpp Library: simplify state-core wrapper parameters 2024-11-26 23:22:46 +01:00
heap-mem-buffer-store.cpp BufferProvider: planning of heuristics and implementation 2026-05-17 01:46:17 +02:00
heap-mem-buffer-store.hpp BufferProvider: remove rest of the old implementation 2026-04-12 19:19:32 +02:00
local-buffer-stage.hpp BufferProvider: start planning for the memory handling part 2026-04-21 23:30:35 +02:00
local-buffer-store.hpp BufferProvider: integrate and verify heuristic trigger of clean-up 2026-05-26 04:39:41 +02:00
local-mem-pool.hpp BufferProvider: integrate and verify heuristic trigger of clean-up 2026-05-26 04:39:41 +02:00
naive-buffer-setup.hpp BufferProvider: successfully complete the load test (see #1396) 2026-05-30 01:51:44 +02:00
simple-buffer-state-registry.hpp BufferProvider: implement locking and data synchronisation 2026-04-20 01:40:15 +02:00
type-handler.hpp BufferProvider: relocate into Vault Layer 2026-03-08 00:53:41 +01:00