MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Memory Namespace Reference

Classes

struct  DynamicStorage
 Runtime-resizable storage using std::vector. More...
 
struct  FixedStorage
 Compile-time fixed-capacity storage using std::array. More...
 
class  HistoryBuffer
 History buffer for difference equations and recursive relations. More...
 
struct  HistoryBufferAccess
 History buffer semantics (newest sample first) More...
 
struct  LockFreePolicy
 Lock-free SPSC (Single Producer Single Consumer) concurrency. More...
 
struct  MPSCPolicy
 Lock-free MPSC (Multi-Producer Single-Consumer) concurrency. More...
 
struct  QueueAccess
 FIFO queue semantics (oldest data first) More...
 
class  RingBuffer
 Policy-driven unified circular buffer implementation. More...
 
class  Seqlock
 Single-writer multiple-reader sequence lock for fixed-size data regions. More...
 
class  SeqlockArray
 Indexed collection of independent, equal-ranked Seqlock instances. More...
 
class  SeqlockWriteGuard
 RAII guard that brackets a Seqlock write region. More...
 
struct  SingleThreadedPolicy
 Non-atomic single-threaded operation. More...
 

Concepts

concept  TriviallyCopyable
 Constraint for types that can be safely copied bitwise.
 

Typedefs

template<typename T >
using DynamicQueue = RingBuffer< T, DynamicStorage< T >, SingleThreadedPolicy, QueueAccess >
 Type alias: Resizable FIFO queue (non-concurrent)
 
template<typename T , size_t Capacity>
using FixedQueue = RingBuffer< T, FixedStorage< T, Capacity >, SingleThreadedPolicy, QueueAccess >
 Type alias: Single-threaded FIFO queue with fixed capacity.
 
template<typename T , size_t Capacity>
using LockFreeQueue = RingBuffer< T, FixedStorage< T, Capacity >, LockFreePolicy, QueueAccess >
 Type alias: Lock-free SPSC queue with fixed capacity.
 
template<typename T , size_t Capacity>
using MPSCQueue = RingBuffer< T, FixedStorage< T, Capacity >, MPSCPolicy, QueueAccess >
 Type alias: Lock-free MPSC queue with fixed capacity.
 

Functions

template<std::invocable Fn>
auto seqlock_read (const Seqlock &lock, uint32_t max_attempts, Fn &&fn) -> std::optional< std::invoke_result_t< Fn > >
 Invoke a read functor under a Seqlock with a bounded retry count.
 
template<std::invocable Fn>
requires std::is_void_v<std::invoke_result_t<Fn>>
bool seqlock_read_void (const Seqlock &lock, uint32_t max_attempts, Fn &&fn)
 Invoke a void read functor under a Seqlock with a bounded retry count.
 

Variables

template<typename Policy >
static constexpr bool policy_is_mpsc = false
 Helper to detect if a policy is MPSC.
 
template<typename Policy >
static constexpr bool policy_is_mpsc< Policy > = Policy::is_mpsc
 Specialization for MPSCPolicy.