58 throw error::Invalid(
"given Provider doesn't match (current) diagnostic data record."
59 "This might be an lifecycle error. Did you build() this instance beforehand?");
79 return &implInstance ==
pImpl_.get();
91 return pImpl_->access_emitted(bufferID).was_used();
98 return pImpl_->access_emitted(bufferID).was_closed();
105 return pImpl_->access_emitted(bufferID).accessMemory();
Access point to singletons and other kinds of dependencies designated by type.
Interface: a facility providing and managing working buffers for media calculations.
Helper for unit tests: Buffer provider reference implementation.
~DiagnosticBufferProvider()
bool buffer_was_closed(uint bufferID) const
bool buffer_was_used(uint bufferID) const
DiagnosticBufferProvider()
bool isCurrent(BufferProvider const &)
static DiagnosticBufferProvider & access(BufferProvider const &)
access the diagnostic API of the buffer provider
static lib::Depend< DiagnosticBufferProvider > diagnostics
Storage for the diagnostics frontend.
static BufferProvider & build()
build a new Diagnostic Buffer Provider instance, discard the existing one.
TrackingHeapBlockProvider & reset()
void * accessMemory(uint bufferID) const
std::unique_ptr< TrackingHeapBlockProvider > pImpl_
simple BufferProvider implementation with additional allocation tracking.
A facility for writing unit-tests targeting the BufferProvider interface.
Lumiera error handling (C++ interface).
Metaprogramming tools for detecting and transforming function types.
LumieraError< LERR_(INVALID)> Invalid
Steam-Layer implementation namespace root.
Dummy implementation of the BufferProvider interface to support writing unit tests.