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

◆ execute_operation()

template<typename OpClass , ComputeData InputType, ComputeData OutputType>
std::optional< Datum< OutputType > > MayaFlux::Yantra::ComputeMatrix::execute_operation ( std::shared_ptr< OpClass >  operation,
const Datum< InputType > &  input 
)
inlineprivate

Core execution implementation.

Definition at line 491 of file ComputeMatrix.hpp.

494 {
495 if (!operation)
496 return std::nullopt;
497
499
500 try {
501 ExecutionContext ctx;
502 configure_execution_context(ctx, std::type_index(typeid(OpClass)));
503
504 auto start = std::chrono::steady_clock::now();
505
506 auto result = operation->apply_operation_internal(input, ctx);
507
509 auto end = std::chrono::steady_clock::now();
510 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
511 update_execution_time(duration.count());
512 }
513
514 return result;
515
516 } catch (const std::exception& e) {
518 handle_execution_error(e, std::type_index(typeid(OpClass)));
519 return std::nullopt;
520 }
521 }
Core::GlobalInputConfig input
Definition Config.cpp:42
void update_execution_time(double ms)
Update execution time statistics.
std::atomic< size_t > m_failed_executions
std::atomic< size_t > m_total_executions
void configure_execution_context(ExecutionContext &ctx, const std::type_index &op_type)
Configure execution context based on operation type and policy.
void handle_execution_error(const std::exception &e, const std::type_index &op_type)
Handle execution errors.

References input.