Lumiera  0.pre.03
»edit your freedom«
ActualInvocationProcess< Strategy, BufferProvider > Class Template Reference

#include "steam/engine/nodeinvocation-obsolete.hpp"

Description

template<class Strategy, class BufferProvider>
class steam::engine::ActualInvocationProcess< Strategy, BufferProvider >

The real invocation context state implementation.

It is created by the NodeWiring (Connectivity) of the processing node which is pulled by this invocation, hereby using the internal configuration information to guide the selection of the real call sequence

assembling the call sequence implementation
Each ProcNode::pull() call creates such a StateAdapter subclass on the stack, with a concrete type according to the Connectivity of the node to pull. This concrete type encodes a calculation Strategy, which is assembled as a chain of policy templates on top of OperationBase. For each of the possible configurations we define such a chain (see bottom of nodeoperation.hpp). The WiringFactory defined in nodewiring.cpp actually drives the instantiation of all those possible combinations.

Definition at line 210 of file nodeinvocation-obsolete.hpp.

Public Member Functions

 ActualInvocationProcess (StateClosure_OBSOLETE &callingProcess, Connectivity const &w, const uint outCh)
 
BuffHandle retrieve ()
 contains the details of Cache query and recursive calls to the predecessor node(s), eventually followed by the ProcNode::process() callback
 
- 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. More...
 
void attachTypeHandler (BuffHandle const &target, BuffDescr const &reference)
 allow for attaching and owing an object within an already created buffer More...
 
void emergencyCleanup (BuffHandle const &target, bool invokeDtor=false)
 
void emitBuffer (BuffHandle const &)
 BufferProvider API: state transition to emitted state. More...
 
size_t getBufferSize (HashVal typeID) const
 
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.
 
BuffDescr getDescriptorFor (size_t storageSize=0)
 describe the kind of buffer managed by this provider
 
BuffDescr getDescriptorFor (size_t storageSize, TypeHandler specialTreatment)
 
BuffHandle lockBuffer (BuffDescr const &)
 BufferProvider API: retrieve a single buffer for exclusive use. More...
 
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. More...
 
void releaseBuffer (BuffHandle const &)
 BufferProvider API: declare done and detach. More...
 
bool verifyValidity (BuffDescr const &) const
 

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. More...
 
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. More...
 
virtual void detachBuffer (HashVal, LocalTag const &, Buff &)=0
 
virtual void mark_emitted (HashVal, LocalTag const &)=0
 
virtual uint prepareBuffers (uint count, HashVal typeID)=0
 
virtual BuffHandle provideLockedBuffer (HashVal typeID)=0
 
bool was_created_by_this_provider (BuffDescr const &) const
 
+ Inheritance diagram for ActualInvocationProcess< Strategy, BufferProvider >:
+ Collaboration diagram for ActualInvocationProcess< Strategy, BufferProvider >:

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