47 #ifndef ENGINE_NODEINVOCATION_H 48 #define ENGINE_NODEINVOCATION_H 53 #include "steam/engine/state-closure-obsolete.hpp" 80 : parent_ (callingProcess),
135 uint nrO()
const {
return wiring.nrO; }
136 uint nrI()
const {
return wiring.nrI; }
137 uint buffTabSize()
const {
return nrO()+nrI(); }
143 buffTab_isConsistent ()
145 return (feedManifold)
146 && (0 < buffTabSize())
147 && (nrO()+nrI() <= buffTabSize())
148 && (feedManifold->inBuff == &feedManifold->outBuff[nrO()] )
149 && (feedManifold->inHandle == &feedManifold->outHandle[nrO()])
160 return current_.genFrameID(wiring.nodeID, outNr);
166 return current_.genFrameID (nID,chanNo);
209 template<
class Strategy,
class BufferProv
ider>
225 return Strategy::step (*
this);
Identification tuple for addressing frames unambiguously.
Invocation(StateClosure_OBSOLETE &callingProcess, Connectivity const &w, uint o)
creates a new invocation context state, without FeedManifold
virtual StateClosure_OBSOLETE & getCurrentImplementation()=0
resolves to the StateClosure object currently "in charge".
Obsolete, to be rewritten /////TICKET #826.
Obsolete, to be rewritten /////TICKET #826.
Adapter to shield the ProcNode from the actual buffer management, allowing the processing function wi...
Representation of the Media type of a data channel used within the engine.
Steam-Layer implementation namespace root.
virtual BuffHandle fetch(FrameID const &fID)
try to fetch an existing buffer containing the denoted frame from a cache or similar backing system (...
virtual void is_calculated(BuffHandle const &)=0
declare the data contained in the Buffer to be ready.
virtual BuffHandle allocateBuffer(const lumiera::StreamType *ty)
allocate a new writable buffer with type and size according to the BuffDescr.
Abstraction to access the state of a currently ongoing render/calculation process, as it is tied to the supporting facilities of the vault layer.
virtual StateClosure_OBSOLETE & getCurrentImplementation()
resolves to the StateClosure object currently "in charge".
void setBuffTab(FeedManifold *b)
setup the link to an externally allocated buffer table
virtual BuffHandle allocateBuffer(const lumiera::StreamType *ty)
allocate a new writable buffer with type and size according to the BuffDescr.
Invocation context state.
virtual void releaseBuffer(BuffHandle &bh)
resign control of the buffer denoted by the handle
< using the parent StateAdapter for buffer allocations
< using the global current StateClosure, which will delegate to Cache
virtual FrameID const & genFrameID(NodeID const &nID, uint chanNo)
generate (or calculate) an ID denoting a media data frame appearing at the given position in the rend...
Handle for a buffer for processing data, abstracting away the actual implementation.
virtual FrameID const & genFrameID()
specialised version filling in the additional information, i.e the concrete node id and the channel n...
Interface: Description of the input and output ports, processing function and predecessor nodes for a...
virtual BuffTableStorage & getBuffTableStorage()=0
necessary for creating a local BuffTableChunk
Identification tuple for denoting render nodes unambiguously.
virtual BuffHandle fetch(FrameID const &)=0
try to fetch an existing buffer containing the denoted frame from a cache or similar backing system (...
virtual BuffTableStorage & getBuffTableStorage()
necessary for creating a local BuffTableChunk
Interface: a facility providing and managing working buffers for media calculations.
virtual void releaseBuffer(BuffHandle &)=0
resign control of the buffer denoted by the handle
BuffHandle retrieve()
contains the details of Cache query and recursive calls to the predecessor node(s), eventually followed by the ProcNode::process() callback
The real invocation context state implementation.
virtual void is_calculated(BuffHandle const &bh)
declare the data contained in the Buffer to be ready.