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

Marker interface for containers backed by file storage (in-memory only). More...

#include <FileContainer.hpp>

+ Inheritance diagram for MayaFlux::Kakshya::FileContainer:
+ Collaboration diagram for MayaFlux::Kakshya::FileContainer:

Public Member Functions

virtual ~FileContainer ()=default
 
- Public Member Functions inherited from MayaFlux::Kakshya::StreamContainer
virtual ~StreamContainer ()=default
 
virtual void set_read_position (const std::vector< uint64_t > &position)=0
 Set the current read position in the primary temporal dimension per channel.
 
virtual void update_read_position_for_channel (size_t channel, uint64_t frame)=0
 Update the read position for a specific channel.
 
virtual const std::vector< uint64_t > & get_read_position () const =0
 Get the current read position.
 
virtual void advance_read_position (const std::vector< uint64_t > &frames)=0
 Advance the read position by a specified amount.
 
virtual bool is_at_end () const =0
 Check if read position has reached the end of the stream.
 
virtual void reset_read_position ()=0
 Reset read position to the beginning of the stream.
 
virtual uint64_t get_temporal_rate () const =0
 Get the temporal rate (e.g., sample rate, frame rate) of the stream.
 
virtual uint64_t time_to_position (double time) const =0
 Convert from time (seconds) to position units (e.g., frame/sample index).
 
virtual double position_to_time (uint64_t position) const =0
 Convert from position units (e.g., frame/sample index) to time (seconds).
 
virtual void set_looping (bool enable)=0
 Enable or disable looping behavior for the stream.
 
virtual bool is_looping () const =0
 Check if looping is enabled for the stream.
 
virtual void set_loop_region (const Region &region)=0
 Set the loop region using a Region.
 
virtual Region get_loop_region () const =0
 Get the current loop region.
 
virtual bool is_ready () const =0
 Check if the stream is ready for reading.
 
virtual std::vector< uint64_t > get_remaining_frames () const =0
 Get the number of remaining frames from the current position, per channel.
 
virtual uint64_t read_sequential (std::span< double > output, uint64_t count)=0
 Read data sequentially from the current position.
 
virtual uint64_t peek_sequential (std::span< double > output, uint64_t count, uint64_t offset=0) const =0
 Peek at data without advancing the read position.
 
virtual void reset_processing_token ()=0
 
virtual bool try_acquire_processing_token (int channel)=0
 
virtual bool has_processing_token (int channel) const =0
 
- Public Member Functions inherited from MayaFlux::Kakshya::SignalSourceContainer
 ~SignalSourceContainer () override=default
 
virtual ProcessingState get_processing_state () const =0
 Get the current processing state of the container.
 
virtual void update_processing_state (ProcessingState new_state)=0
 Update the processing state of the container.
 
virtual void register_state_change_callback (std::function< void(std::shared_ptr< SignalSourceContainer >, ProcessingState)> callback)=0
 Register a callback to be invoked on processing state changes.
 
virtual void unregister_state_change_callback ()=0
 Unregister the state change callback, if any.
 
virtual bool is_ready_for_processing () const =0
 Check if the container is ready for processing.
 
virtual void mark_ready_for_processing (bool ready)=0
 Mark the container as ready or not ready for processing.
 
virtual void create_default_processor ()=0
 Create and configure a default processor for this container.
 
virtual void process_default ()=0
 Process the container's data using the default processor.
 
virtual void set_default_processor (std::shared_ptr< DataProcessor > processor)=0
 Set the default data processor for this container.
 
virtual std::shared_ptr< DataProcessorget_default_processor () const =0
 Get the current default data processor.
 
virtual std::shared_ptr< DataProcessingChainget_processing_chain ()=0
 Get the current processing chain for this container.
 
virtual void set_processing_chain (std::shared_ptr< DataProcessingChain > chain)=0
 Set the processing chain for this container.
 
virtual uint32_t register_dimension_reader (uint32_t dimension_index)=0
 Register a reader for a specific dimension.
 
virtual void unregister_dimension_reader (uint32_t dimension_index)=0
 Unregister a reader for a specific dimension.
 
virtual bool has_active_readers () const =0
 Check if any dimensions currently have active readers.
 
virtual void mark_dimension_consumed (uint32_t dimension_index, uint32_t reader_id)=0
 Mark a dimension as consumed for the current processing cycle.
 
virtual bool all_dimensions_consumed () const =0
 Check if all active dimensions have been consumed in this cycle.
 
virtual std::vector< DataVariant > & get_processed_data ()=0
 Get a mutable reference to the processed data buffer.
 
virtual const std::vector< DataVariant > & get_processed_data () const =0
 Get a const reference to the processed data buffer.
 
virtual const std::vector< DataVariant > & get_data ()=0
 Get a reference to the raw data stored in the container.
 
virtual void mark_buffers_for_processing (bool should_process)=0
 Mark associated buffers for processing in the next cycle.
 
virtual void mark_buffers_for_removal ()=0
 Mark associated buffers for removal from the system.
 
virtual DataAccess channel_data (size_t channel_index)=0
 Get channel data with semantic interpretation.
 
virtual std::vector< DataAccessall_channel_data ()=0
 Get all channel data as accessors.
 
- Public Member Functions inherited from MayaFlux::Kakshya::NDDataContainer
virtual ~NDDataContainer ()=default
 
virtual std::vector< DataDimensionget_dimensions () const =0
 Get the dimensions describing the structure of the data.
 
virtual uint64_t get_total_elements () const =0
 Get the total number of elements in the container.
 
virtual MemoryLayout get_memory_layout () const =0
 Get the memory layout used by this container.
 
virtual void set_memory_layout (MemoryLayout layout)=0
 Set the memory layout for this container.
 
virtual uint64_t get_frame_size () const =0
 Get the number of elements that constitute one "frame".
 
virtual uint64_t get_num_frames () const =0
 Get the number of frames in the primary (temporal) dimension.
 
virtual std::vector< DataVariantget_region_data (const Region &region) const =0
 Get data for a specific region.
 
virtual std::vector< DataVariantget_region_group_data (const RegionGroup &regions) const =0
 Get data for multiple regions efficiently.
 
virtual std::vector< DataVariantget_segments_data (const std::vector< RegionSegment > &segments) const =0
 Get data for multiple region segments efficiently.
 
virtual void set_region_data (const Region &region, const std::vector< DataVariant > &data)=0
 Set data for a specific region.
 
virtual std::span< const double > get_frame (uint64_t frame_index) const =0
 Get a single frame of data efficiently.
 
virtual void get_frames (std::span< double > output, uint64_t start_frame, uint64_t num_frames) const =0
 Get multiple frames efficiently.
 
virtual double get_value_at (const std::vector< uint64_t > &coordinates) const =0
 Get a single value at the specified coordinates.
 
virtual void set_value_at (const std::vector< uint64_t > &coordinates, double value)=0
 Set a single value at the specified coordinates.
 
virtual void add_region_group (const RegionGroup &group)=0
 Add a named group of regions to the container.
 
virtual const RegionGroupget_region_group (const std::string &name) const =0
 Get a region group by name.
 
virtual std::unordered_map< std::string, RegionGroupget_all_region_groups () const =0
 Get all region groups in the container.
 
virtual void remove_region_group (const std::string &name)=0
 Remove a region group by name.
 
virtual bool is_region_loaded (const Region &region) const =0
 Check if a region is loaded in memory.
 
virtual void load_region (const Region &region)=0
 Load a region into memory.
 
virtual void unload_region (const Region &region)=0
 Unload a region from memory.
 
virtual uint64_t coordinates_to_linear_index (const std::vector< uint64_t > &coordinates) const =0
 Convert coordinates to linear index based on current memory layout.
 
virtual std::vector< uint64_t > linear_index_to_coordinates (uint64_t linear_index) const =0
 Convert linear index to coordinates based on current memory layout.
 
virtual void clear ()=0
 Clear all data in the container.
 
virtual void lock ()=0
 Acquire a lock for thread-safe access.
 
virtual void unlock ()=0
 Release a previously acquired lock.
 
virtual bool try_lock ()=0
 Attempt to acquire a lock without blocking.
 
virtual const void * get_raw_data () const =0
 Get a raw pointer to the underlying data storage.
 
virtual bool has_data () const =0
 Check if the container currently holds any data.
 
virtual ContainerDataStructureget_structure ()=0
 Get the data structure defining this container's layout.
 
virtual const ContainerDataStructureget_structure () const =0
 
virtual void set_structure (ContainerDataStructure structure)=0
 Set the data structure for this container.
 

Detailed Description

Marker interface for containers backed by file storage (in-memory only).

All disk I/O, file format, and metadata operations must be handled by IO classes. This interface exists for semantic clarity and future extension. Uses virtual inheritance to support diamond inheritance pattern with SoundStreamContainer.

Definition at line 14 of file FileContainer.hpp.


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