MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Yantra::UniversalExtractor< InputType, OutputType > Class Template Referenceabstract

Template-flexible extractor base with instance-defined I/O types. More...

#include <UniversalExtractor.hpp>

+ Inheritance diagram for MayaFlux::Yantra::UniversalExtractor< InputType, OutputType >:
+ Collaboration diagram for MayaFlux::Yantra::UniversalExtractor< InputType, OutputType >:

Public Types

using input_type = IO< InputType >
 
using output_type = IO< OutputType >
 
using base_type = ComputeOperation< InputType, OutputType >
 
- Public Types inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
using input_type = IO< InputType >
 
using output_type = IO< OutputType >
 

Public Member Functions

virtual ~UniversalExtractor ()=default
 
virtual ExtractionType get_extraction_type () const =0
 Gets the extraction type category for this extractor.
 
std::string get_name () const override
 Gets human-readable name for this extractor.
 
void set_parameter (const std::string &name, std::any value) override
 Type-safe parameter management with extraction-specific defaults.
 
std::any get_parameter (const std::string &name) const override
 Retrieves a parameter's current value.
 
std::map< std::string, std::any > get_all_parameters () const override
 Retrieves all parameters and their values.
 
OutputType extract_data (const InputType &data)
 Type-safe extraction method.
 
OutputType extract_with_scope (const InputType &data, ExtractionScope scope)
 Extract with specific scope.
 
std::vector< OutputType > extract_batch (const std::vector< InputType > &inputs)
 Batch extraction for multiple inputs.
 
virtual std::vector< std::string > get_available_methods () const =0
 Get available extraction methods for this extractor.
 
template<typename T >
get_parameter_or_default (const std::string &name, const T &default_value) const
 Helper to get typed parameter with default value.
 
- Public Member Functions inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
 ComputeOperation ()
 Constructor with data type validation warnings.
 
virtual ~ComputeOperation ()=default
 Virtual destructor for proper cleanup of derived classes.
 
output_type apply_operation (const input_type &input)
 Public synchronous execution interface.
 
output_type apply_operation_with_dependencies (const input_type &input)
 Applies the operation with dependencies resolved.
 
output_type operator() (const InputType &data)
 Convenience overload for direct data processing (backward compatibility)
 
OutputType apply_to_data (const InputType &data)
 Convenience overload that extracts just the data from result.
 
virtual bool validate_input (const input_type &) const
 Validates if the input data meets the operation's requirements.
 
output_type execute (const input_type &input)
 OpUnit interface - operations can act as units in dependency graphs.
 
void add_dependency (std::shared_ptr< ComputeOperation > dep)
 
const auto & get_dependencies () const
 
virtual void set_container_for_regions (const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
 
virtual const std::shared_ptr< Kakshya::SignalSourceContainer > & get_container_for_regions () const
 
void set_last_execution_context (const ExecutionContext &ctx)
 
const ExecutionContextget_last_execution_context () const
 
void set_pre_execution_hook (const OpererationHookCallback &hook)
 
void set_post_execution_hook (const OpererationHookCallback &hook)
 
void set_reconstruction_callback (const ReconstructionCallback &callback)
 

Protected Member Functions

output_type operation_function (const input_type &input) override
 Core operation implementation - called by ComputeOperation interface.
 
virtual output_type extract_implementation (const input_type &input)=0
 Pure virtual extraction implementation - derived classes implement this.
 
virtual std::string get_extractor_name () const
 Get extractor-specific name (derived classes override this)
 
virtual void set_extraction_parameter (const std::string &name, std::any value)
 Extraction-specific parameter handling (override for custom parameters)
 
virtual std::any get_extraction_parameter (const std::string &name) const
 
virtual std::map< std::string, std::any > get_all_extraction_parameters () const
 
virtual bool validate_extraction_input (const input_type &) const
 Input validation (override for custom validation logic)
 
virtual output_type apply_scope_filtering (const output_type &raw_output)
 Apply scope filtering to results.
 
virtual output_type filter_to_target_regions (const output_type &raw_output)
 Filter results to target regions (override for custom filtering)
 
virtual output_type apply_content_filtering (const output_type &raw_output)
 Apply content-based filtering (override for custom filtering)
 
virtual output_type apply_data_sampling (const output_type &raw_output)
 Apply data sampling (override for custom sampling)
 
- Protected Member Functions inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
virtual output_type apply_operation_internal (const input_type &input, const ExecutionContext &context)
 Internal execution method - ComputeMatrix can access this.
 
virtual std::future< output_typeapply_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.
 
virtual output_type apply_operation_chained (const input_type &input, const ExecutionContext &ctx)
 Optional chain-aware implementation - default delegates to operation_function.
 
output_type convert_result (std::vector< std::vector< double > > &result_data, DataStructureInfo &metadata)
 Convert processed double data back to OutputType using metadata and optional callback.
 

Private Attributes

ExtractionScope m_scope = ExtractionScope::FULL_DATA
 
std::map< std::string, std::any > m_parameters
 

Additional Inherited Members

- Protected Attributes inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
std::shared_ptr< Kakshya::SignalSourceContainerm_container
 
ExecutionContext m_last_execution_context
 

Detailed Description

template<ComputeData InputType = std::vector<Kakshya::DataVariant>, ComputeData OutputType = InputType>
class MayaFlux::Yantra::UniversalExtractor< InputType, OutputType >

Template-flexible extractor base with instance-defined I/O types.

The UniversalExtractor provides a clean, concept-based foundation for all extraction operations. I/O types are defined at instantiation time, providing maximum flexibility while maintaining type safety through C++20 concepts.

Key Features:

  • Instance-defined I/O types via template parameters
  • Concept-constrained data types for compile-time safety
  • Extraction type categorization for discovery
  • Scope control for targeted extraction
  • Parameter management with type safety
  • Integration with ComputeMatrix execution modes

Definition at line 84 of file UniversalExtractor.hpp.


The documentation for this class was generated from the following file: