MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Buffers::RootBuffer< BufferType > Class Template Referenceabstract

#include <RootBuffer.hpp>

+ Inheritance diagram for MayaFlux::Buffers::RootBuffer< BufferType >:
+ Collaboration diagram for MayaFlux::Buffers::RootBuffer< BufferType >:

Classes

struct  PendingBufferOp
 Structure for storing pending buffer add/remove operations. More...
 

Public Member Functions

virtual void add_child_buffer (std::shared_ptr< BufferType > buffer)
 Adds a tributary buffer to this root buffer.
 
virtual bool try_add_child_buffer (std::shared_ptr< BufferType > buffer, std::string *rejection_reason=nullptr)
 Attempts to add a child buffer without throwing exceptions.
 
virtual void remove_child_buffer (std::shared_ptr< BufferType > buffer)
 Removes a tributary buffer from this root buffer.
 
size_t get_num_children () const
 Gets the number of tributary buffers in the aggregation hierarchy.
 
const std::vector< std::shared_ptr< BufferType > > & get_child_buffers () const
 Gets all tributary buffers in the aggregation hierarchy.
 
void clear () override
 Resets all data values in this buffer and its tributaries.
 
virtual void set_token_active (bool active)=0
 Activates/deactivates processing for the current token.
 
virtual bool is_token_active () const =0
 Checks if the buffer is active for its assigned token.
 
virtual void set_processing_rate_hint (uint32_t tick_rate)
 Sets processing rate hint for the buffer.
 
virtual uint32_t get_processing_rate_hint () const
 Gets the processing rate hint.
 
virtual void enable_cross_modal_sharing (bool enabled)
 Enables cross-modal data sharing.
 
virtual bool is_cross_modal_sharing_enabled () const
 Checks if cross-modal sharing is enabled.
 
bool is_buffer_acceptable (std::shared_ptr< BufferType > buffer, std::string *rejection_reason=nullptr) const
 Validates if a buffer is acceptable based on current token enforcement strategy.
 
bool has_pending_operations () const
 

Protected Member Functions

void add_child_buffer_direct (std::shared_ptr< BufferType > buffer)
 
void remove_child_buffer_direct (std::shared_ptr< BufferType > buffer)
 
void process_pending_buffer_operations ()
 Process pending operations - call this at start of processing cycles.
 

Protected Attributes

std::vector< std::shared_ptr< BufferType > > m_child_buffers
 Vector of tributary buffers that contribute to this root buffer.
 
uint32_t m_processing_rate_hint
 Processing rate hint for this buffer.
 
bool m_cross_modal_sharing
 Whether this buffer allows cross-modal data sharing.
 
TokenEnforcementStrategy m_token_enforcement_strategy { TokenEnforcementStrategy::STRICT }
 Current token enforcement strategy for this root buffer.
 
ProcessingToken m_preferred_processing_token
 Preferred processing token for this root buffer.
 
std::atomic< uint32_t > m_pending_count { 0 }
 
struct MayaFlux::Buffers::RootBuffer::PendingBufferOp m_pending_ops [MAX_PENDING]
 

Static Protected Attributes

static constexpr size_t MAX_PENDING = 64
 

Detailed Description

template<typename BufferType>
class MayaFlux::Buffers::RootBuffer< BufferType >

Definition at line 8 of file RootBuffer.hpp.


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