MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ apply_operation_internal()

template<ComputeData InputType = std::vector<Kakshya::DataVariant>, ComputeData OutputType = InputType>
virtual output_type MayaFlux::Yantra::ComputeOperation< InputType, OutputType >::apply_operation_internal ( const input_type input,
const ExecutionContext context 
)
inlineprotectedvirtual

Internal execution method - ComputeMatrix can access this.

Parameters
inputInput data wrapped in IO
contextExecution context with mode, threading, etc.
Returns
Processed output

Definition at line 193 of file ComputeOperation.hpp.

194 {
195 switch (context.mode) {
197 // Return the result of the future (this might need different handling)
198 return apply_operation_async(input).get();
199
201 return apply_operation_parallel(input, context);
202
204 return apply_operation_chained(input, context);
205
208 default:
209 return apply_hooks(input, context);
210 }
211 }
output_type apply_hooks(const input_type &input, const ExecutionContext &context)
virtual output_type apply_operation_chained(const input_type &input, const ExecutionContext &ctx)
Optional chain-aware implementation - default delegates to operation_function.
virtual std::future< output_type > apply_operation_async(const input_type &input)
Optional async implementation - default delegates to operation_function.
virtual output_type apply_operation_parallel(const input_type &input, const ExecutionContext &ctx)
Optional parallel-aware implementation - default delegates to operation_function.
@ SYNC
Synchronous execution.
@ CHAINED
Part of a sequential chain.
@ DEPENDENCY
Part of dependency graph.
@ ASYNC
Asynchronous execution.
@ PARALLEL
Parallel with other operations.

References MayaFlux::Yantra::ExecutionContext::mode.