MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kakshya::DataInsertion Class Reference

Type-erased writer for NDData with semantic construction. More...

#include <DataInsertion.hpp>

+ Collaboration diagram for MayaFlux::Kakshya::DataInsertion:

Public Member Functions

 DataInsertion (DataVariant &variant, std::vector< DataDimension > &dimensions, DataModality &modality)
 
template<typename T >
requires std::is_arithmetic_v<T>
void insert_scalar (std::vector< T > data, DataModality target_modality, bool replace_existing=true)
 Insert scalar array data.
 
template<GlmType T>
void insert_structured (std::vector< T > data, DataModality target_modality, bool replace_existing=true)
 Insert structured GLM data with automatic dimension setup.
 
template<typename T >
void insert_from_span (std::span< const T > data_span, DataModality target_modality)
 Insert data from span (copy operation)
 
template<typename From , typename To >
void insert_converted (const std::vector< From > &source, DataModality target_modality)
 Convert and insert from different type.
 
void reserve_space (size_t element_count, DataModality target_modality)
 Reserve space without initialization.
 
void clear_data ()
 Clear all data while preserving modality.
 
DataModality current_modality () const
 
bool is_empty () const
 

Private Member Functions

void validate_scalar_insertion (DataModality modality) const
 Validate scalar insertion matches modality expectations.
 
template<GlmType T>
void validate_structured_insertion (DataModality modality) const
 Validate structured insertion matches GLM component count.
 
template<GlmType T>
DataDimension create_structured_dimension (uint64_t element_count, DataModality modality) const
 Create dimension descriptor for structured data.
 
template<typename T >
void append_to_existing (std::vector< T > new_data)
 Append scalar data to existing storage.
 
template<GlmType T>
void append_structured_to_existing (std::vector< T > new_data)
 Append structured data to existing storage.
 

Static Private Member Functions

static std::string modality_to_dimension_name (DataModality modality)
 Convert modality to appropriate dimension name.
 
static DataDimension::Role modality_to_role (DataModality modality)
 Convert modality to dimension role.
 
static std::string_view suggest_glm_type_for_modality (DataModality modality)
 Suggest appropriate GLM type for a modality.
 

Private Attributes

DataVariantm_variant
 
std::vector< DataDimension > & m_dimensions
 
DataModalitym_modality
 

Detailed Description

Type-erased writer for NDData with semantic construction.

Companion to DataAccess for write operations. Provides unified interface to insert data from various sources (GLM types, scalar arrays, etc.) into DataVariant storage while maintaining appropriate dimension metadata.

Design principle: All types are equal. GLM specializations exist for ergonomics, not privileged status.

Definition at line 22 of file DataInsertion.hpp.


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