Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
BufferProxyProvider::ForwardingBufferProvider Class Reference

Description

Definition at line 62 of file buffer-proxy-provider.hpp.

Public Member Functions

 ForwardingBufferProvider (Listener listener)
 
- Public Member Functions inherited from BufferProvider
virtual ~BufferProvider ()
 this is an ABC
 
uint announce (uint count, BuffDescr const &)
 BufferProvider API: declare in advance the need for working buffers.
 
BuffHandle lockBuffer (BuffDescr const &)
 BufferProvider API: retrieve a single buffer for exclusive use.
 
void emitBuffer (BuffHandle const &)
 BufferProvider API: state transition to emitted state.
 
void releaseBuffer (BuffHandle const &)
 BufferProvider API: declare done and detach.
 
template<typename BU , typename... ARGS>
BuffHandle lockBufferFor (ARGS ...args)
 convenience shortcut: prepare and claim ("lock") a buffer suitable to hold an object of the given type.
 
void attachTypeHandler (BuffHandle const &target, BuffDescr const &reference)
 allow for attaching and owing an object within an already created buffer
 
void emergencyCleanup (BuffHandle const &target, bool invokeDtor=false)
 
BuffDescr getDescriptorFor (size_t storageSize=0)
 describe the kind of buffer managed by this provider
 
BuffDescr getDescriptorFor (size_t storageSize, TypeHandler specialTreatment)
 
template<typename BU , typename... ARGS>
BuffDescr getDescriptor (ARGS ...args)
 define a "buffer type" for automatically creating an instance of the template type embedded into the buffer and destroying that embedded object when releasing the buffer.
 
bool verifyValidity (BuffDescr const &) const
 
size_t getBufferSize (HashVal typeID) const
 

Private Member Functions

uint prepareBuffers (uint, HashVal) override
 
BuffHandle provideLockedBuffer (HashVal typeID) override
 
void mark_emitted (HashVal, LocalTag const &) override
 
void detachBuffer (HashVal, LocalTag const &, Buff &) override
 

Private Attributes

Listener listener_
 

Additional Inherited Members

- Protected Types inherited from BufferProvider
using Buff = StreamType::ImplFacade::DataBuffer
 placeholder marker type for an actual data buffer
 
- Protected Member Functions inherited from BufferProvider
 BufferProvider (Literal implementationID)
 build a new provider instance, managing a family of buffers.
 
BuffHandle buildHandle (HashVal typeID, Buff *storage, LocalTag const &=LocalTag::UNKNOWN)
 callback from implementation to build and enrol a BufferHandle, to be returned to the client as result of the lockBuffer call.
 
bool was_created_by_this_provider (BuffDescr const &) const
 

Constructor & Destructor Documentation

◆ ForwardingBufferProvider()

ForwardingBufferProvider ( Listener  listener)
inline

Definition at line 95 of file buffer-proxy-provider.hpp.

Member Function Documentation

◆ prepareBuffers()

uint prepareBuffers ( uint  ,
HashVal   
)
inlineoverrideprivatevirtual

Implements BufferProvider.

Definition at line 70 of file buffer-proxy-provider.hpp.

◆ provideLockedBuffer()

BuffHandle provideLockedBuffer ( HashVal  typeID)
inlineoverrideprivatevirtual

Implements BufferProvider.

Definition at line 77 of file buffer-proxy-provider.hpp.

◆ mark_emitted()

void mark_emitted ( HashVal  ,
LocalTag const &   
)
inlineoverrideprivatevirtual

Implements BufferProvider.

Definition at line 84 of file buffer-proxy-provider.hpp.

◆ detachBuffer()

void detachBuffer ( HashVal  ,
LocalTag const &  ,
Buff  
)
inlineoverrideprivatevirtual

Implements BufferProvider.

Definition at line 90 of file buffer-proxy-provider.hpp.

Member Data Documentation

◆ listener_

Listener listener_
private

Definition at line 65 of file buffer-proxy-provider.hpp.

+ Inheritance diagram for BufferProxyProvider::ForwardingBufferProvider:
+ Collaboration diagram for BufferProxyProvider::ForwardingBufferProvider:

The documentation for this class was generated from the following file: