|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
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 ®ion)=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< DataProcessor > | get_default_processor () const =0 |
| Get the current default data processor. | |
| virtual std::shared_ptr< DataProcessingChain > | get_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< DataAccess > | all_channel_data ()=0 |
| Get all channel data as accessors. | |
Public Member Functions inherited from MayaFlux::Kakshya::NDDataContainer | |
| virtual | ~NDDataContainer ()=default |
| virtual std::vector< DataDimension > | get_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< DataVariant > | get_region_data (const Region ®ion) const =0 |
| Get data for a specific region. | |
| virtual std::vector< DataVariant > | get_region_group_data (const RegionGroup ®ions) const =0 |
| Get data for multiple regions efficiently. | |
| virtual std::vector< DataVariant > | get_segments_data (const std::vector< RegionSegment > &segments) const =0 |
| Get data for multiple region segments efficiently. | |
| virtual void | set_region_data (const Region ®ion, 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 RegionGroup & | get_region_group (const std::string &name) const =0 |
| Get a region group by name. | |
| virtual std::unordered_map< std::string, RegionGroup > | get_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 ®ion) const =0 |
| Check if a region is loaded in memory. | |
| virtual void | load_region (const Region ®ion)=0 |
| Load a region into memory. | |
| virtual void | unload_region (const Region ®ion)=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 ContainerDataStructure & | get_structure ()=0 |
| Get the data structure defining this container's layout. | |
| virtual const ContainerDataStructure & | get_structure () const =0 |
| virtual void | set_structure (ContainerDataStructure structure)=0 |
| Set the data structure for this container. | |
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.