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

Thread-safe interface for buffer operations within a processing domain. More...

#include <ProcessingArchitecture.hpp>

+ Collaboration diagram for MayaFlux::Core::BufferProcessingHandle:

Public Member Functions

 BufferProcessingHandle (std::shared_ptr< Buffers::BufferManager > manager, Buffers::ProcessingToken token)
 Constructs handle for specific buffer manager and token.
 
 BufferProcessingHandle (const BufferProcessingHandle &)=delete
 
BufferProcessingHandleoperator= (const BufferProcessingHandle &)=delete
 
 BufferProcessingHandle (BufferProcessingHandle &&)=default
 
BufferProcessingHandleoperator= (BufferProcessingHandle &&)=default
 
void process (uint32_t processing_units)
 Process all channels in token domain.
 
void process_channel (uint32_t channel, uint32_t processing_units)
 Process specific channel.
 
void process_channel_with_node_data (uint32_t channel, uint32_t processing_units, const std::vector< double > &node_data)
 Process channel with node output data integration.
 
void process_input (double *input_data, uint32_t num_channels, uint32_t num_frames)
 @brienf Process Input from backend into buffer manager
 
std::span< const double > read_channel_data (uint32_t channel) const
 Get read-only access to channel data.
 
std::span< double > write_channel_data (uint32_t channel)
 Get write access to channel data with automatic locking.
 
void setup_channels (uint32_t num_channels, uint32_t buffer_size)
 Configure channel layout for token domain.
 

Private Member Functions

void ensure_valid () const
 
void acquire_write_lock ()
 

Private Attributes

std::shared_ptr< Buffers::BufferManagerm_manager
 
Buffers::ProcessingToken m_token
 
bool m_locked
 

Detailed Description

Thread-safe interface for buffer operations within a processing domain.

Provides scoped, thread-safe access to buffer operations with automatic token validation.

Definition at line 86 of file ProcessingArchitecture.hpp.


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