MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Yantra::Datum< T > Struct Template Reference

Input/Output container for computation pipeline data flow with structure preservation. More...

#include <DataIO.hpp>

+ Inheritance diagram for MayaFlux::Yantra::Datum< T >:
+ Collaboration diagram for MayaFlux::Yantra::Datum< T >:

Public Member Functions

 Datum ()=default
 Default constructor.
 
 Datum (const T &d)
 Construct from data by copy with automatic structure inference.
 
 Datum (const T &d, const std::shared_ptr< Kakshya::SignalSourceContainer > &cont)
 Construct from data by copy with container reference and automatic structure inference.
 
 Datum (T &&d)
 Construct from data by move with automatic structure inference.
 
 Datum (T &&d, const std::shared_ptr< Kakshya::SignalSourceContainer > &cont)
 Construct from data by move with automatic structure inference.
 
 Datum (T &&d, const std::shared_ptr< Kakshya::SignalSourceContainer > container, std::vector< Kakshya::DataDimension > dims, Kakshya::DataModality mod)
 Construct with move and explicit structure information.
 
 Datum (T &&d, std::vector< Kakshya::DataDimension > dims, Kakshya::DataModality mod)
 Construct with move and explicit structure information.
 
int find_dimension_by_role (Kakshya::DataDimension::Role role) const
 Find dimension by semantic role.
 
template<typename ValueType >
std::optional< ValueType > get_metadata (const std::string &key) const
 Get metadata entry with type safety.
 
uint64_t get_total_elements () const
 Get total number of elements across all dimensions.
 
bool has_container () const
 Check if a container reference is associated.
 
bool has_modality (Kakshya::DataModality target_modality) const
 Check if data has specific modality.
 
bool is_suitable_for_processing (Kakshya::DataModality required_modality, size_t min_dimensions=1) const
 Check if data is suitable for a specific type of processing.
 
bool needs_processig () const
 Check if processing is needed (for container types)
 
T & operator* ()
 Access underlying data (mutable)
 
const T & operator* () const
 Access underlying data (const)
 
void set_container (const std::shared_ptr< Kakshya::SignalSourceContainer > &cont)
 Set or update the associated container reference.
 
void set_container_processing (bool val)
 Set whether processing is needed (for container types)
 
template<typename ValueType >
void set_metadata (const std::string &key, ValueType &&value)
 Add or update metadata entry.
 
void update_structure (std::vector< Kakshya::DataDimension > new_dims, Kakshya::DataModality new_modality)
 Update structure information (use carefully!)
 

Public Attributes

bool b_container_processing {}
 
std::optional< std::shared_ptr< Kakshya::SignalSourceContainer > > container
 Optional reference to container, required for regions.
 
data
 The actual computation data.
 
std::vector< Kakshya::DataDimensiondimensions
 Data dimensional structure.
 
std::unordered_map< std::string, std::any > metadata
 Associated metadata.
 
Kakshya::DataModality modality {}
 Data modality (audio, image, spectral, etc.)
 

Detailed Description

template<ComputeData T = std::vector<Kakshya::DataVariant>>
struct MayaFlux::Yantra::Datum< T >

Input/Output container for computation pipeline data flow with structure preservation.

Template Parameters
TData type that satisfies ComputeData concept

Encapsulates data with associated structure information and metadata for pipeline operations. The structure (dimensions and modality) is automatically inferred at construction time, ensuring that all data flowing through operations carries its dimensional context.

Key Features:

  • Automatic structure inference from data type and content
  • Dimension and modality preservation through pipeline operations
  • Flexible metadata storage for operation-specific information
  • Move semantics for efficiency with large data

Definition at line 24 of file DataIO.hpp.


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