56 #ifndef ENGINE_NODEOPERATION_H 57 #define ENGINE_NODEOPERATION_H 91 UNIMPLEMENTED (
"retrieve source data provided by the vault/scheduler");
97 UNIMPLEMENTED (
"invoke pull() on the denoted predecessor node");
101 releaseBuffers(
BuffHandle* table, uint slotCnt, uint slot_to_retain)
103 UNIMPLEMENTED (
"release all buffers with the exception of the desired output");
109 UNIMPLEMENTED (
"Do a final, specifically tailored validation step on the buffers prior to invoking the process function");
124 return NEXT::step (ivo);
137 ASSERT (ivo.buffTab);
138 ASSERT (ivo.buffTab_isConsistent());
140 return NEXT::step (ivo);
154 for (uint i = 0; i < ivo.nrI(); ++i )
157 &*(inH[i] = this->pullPredecessor(ivo,i));
160 return NEXT::step (ivo);
176 ASSERT (ivo.nrO() == ivo.nrI() );
178 for (uint i = 0; i < ivo.nrI(); ++i )
180 inBuff[i] = outBuff[i] =
181 &*(inH[i] = outH[i] = this->getSource(ivo,i));
184 return NEXT::step (ivo);
195 ASSERT (ivo.buffTab);
196 ASSERT (ivo.nrO() < ivo.buffTabSize());
200 for (uint i = 0; i < ivo.nrO(); ++i )
206 return NEXT::step (ivo);
217 ASSERT (ivo.buffTab);
218 ASSERT (ivo.buffTab_isConsistent());
219 ASSERT (this->validateBuffers(ivo));
223 (*ivo.wiring.procFunction) (*ivo.buffTab->outBuff);
225 return NEXT::step (ivo);
236 for (uint i = 0; i < ivo.nrO(); ++i )
242 return NEXT::step (ivo);
254 this->releaseBuffers(ivo.buffTab->outHandle,
258 return ivo.buffTab->outHandle[ivo.outNr];
285 template<u
int STEAM_ign, u
int INPLA_ign>
289 template<
class Config>
293 template<u
int INPLACE_ign>
302 OperationBase > > > > > > >
305 template<u
int INPLACE_ign>
312 OperationBase > > > > >
333 OperationBase > > > > >
Base class of all concrete invocation sequences.
Interface to the processing nodes and the render nodes network.
Obsolete, to be rewritten /////TICKET #826 to be allocated on the stack while evaluating a ProcNode::...
Access point to an ongoing render's processing state.
Under some circumstances it is necessary to assemble functionality out of elementary building blocks...
Marker tuple to identify a specific frame.
virtual BuffHandle allocateBuffer(const lumiera::StreamType *)=0
allocate a new writable buffer with type and size according to the BufferDescriptor.
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 (...
Organise the state related to the invocation of s single ProcNode::pull() call This header defines pa...
void setBuffTab(BuffTable *b)
setup the link to an externally allocated buffer table
Invocation context state.
< using the parent StateAdapter for buffer allocations
< using the global current State, which will delegate to Cache
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
Representation of the Media type of a data channel used within the engine.
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.