52 #ifndef ENGINE_NODEOPERATION_H 53 #define ENGINE_NODEOPERATION_H 58 #include "steam/engine/state-closure-obsolete.hpp" 88 UNIMPLEMENTED (
"retrieve source data provided by the vault/scheduler");
94 UNIMPLEMENTED (
"invoke pull() on the denoted predecessor node");
98 releaseBuffers(
BuffHandle* table, uint slotCnt, uint slot_to_retain)
100 UNIMPLEMENTED (
"release all buffers with the exception of the desired output");
106 UNIMPLEMENTED (
"Do a final, specifically tailored validation step on the buffers prior to invoking the process function");
121 return NEXT::step (ivo);
134 ASSERT (ivo.feedManifold);
135 ASSERT (ivo.buffTab_isConsistent());
137 return NEXT::step (ivo);
148 BuffHandle * inH = ivo.feedManifold->inHandle;
151 for (uint i = 0; i < ivo.nrI(); ++i )
154 &*(inH[i] = this->pullPredecessor(ivo,i));
157 return NEXT::step (ivo);
169 BuffHandle *outH = ivo.feedManifold->outHandle;
173 ASSERT (ivo.nrO() == ivo.nrI() );
175 for (uint i = 0; i < ivo.nrI(); ++i )
177 inBuff[i] = outBuff[i] =
178 &*(inH[i] = outH[i] = this->getSource(ivo,i));
181 return NEXT::step (ivo);
192 ASSERT (ivo.feedManifold);
193 ASSERT (ivo.nrO() < ivo.buffTabSize());
194 BuffHandle *outH = ivo.feedManifold->outHandle;
197 for (uint i = 0; i < ivo.nrO(); ++i )
203 return NEXT::step (ivo);
214 ASSERT (ivo.feedManifold);
215 ASSERT (ivo.buffTab_isConsistent());
216 ASSERT (this->validateBuffers(ivo));
220 (*ivo.wiring.procFunction) (*ivo.feedManifold->outBuff);
222 return NEXT::step (ivo);
233 for (uint i = 0; i < ivo.nrO(); ++i )
239 return NEXT::step (ivo);
251 this->releaseBuffers(ivo.feedManifold->outHandle,
255 return ivo.feedManifold->outHandle[ivo.outNr];
282 template<u
int PROC_ign, u
int INPLA_ign>
286 template<
class Config>
290 template<u
int INPLACE_ign>
299 OperationBase > > > > > > >
302 template<u
int INPLACE_ign>
309 OperationBase > > > > >
330 OperationBase > > > > >
Base class of all concrete invocation sequences.
Obsolete, to be rewritten /////TICKET #826 to be allocated on the stack while evaluating a ProcNode::...
Under some circumstances it is necessary to assemble functionality out of elementary building blocks...
Marker tuple to identify a specific frame.
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 BuffHandle allocateBuffer(const lumiera::StreamType *)=0
allocate a new writable buffer with type and size according to the BuffDescr.
void setBuffTab(FeedManifold *b)
setup the link to an externally allocated buffer table
Invocation context state.
< using the parent StateAdapter for buffer allocations
< using the global current StateClosure, which will delegate to Cache
Organise the state related to the invocation of s single ProcNode::pull() call This header defines pa...
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...
virtual BuffTableStorage & getBuffTableStorage()
necessary for creating a local BuffTableChunk
placeholder type for the contents of a data buffer.
virtual void is_calculated(BuffHandle const &bh)
declare the data contained in the Buffer to be ready.