MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ operator[]()

template<typename T , typename StoragePolicy , typename ConcurrencyPolicy = SingleThreadedPolicy, typename AccessPattern = QueueAccess>
const_reference MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::operator[] ( size_t  index) const
inline

Access element by index (delay line style)

Parameters
indexDistance from newest element (0 = newest)
Returns
Reference to element

Only available for SingleThreadedPolicy (HistoryBufferAccess). Provides array-like access where [0] is newest sample.

Definition at line 887 of file RingBuffer.hpp.

889 {
890 const size_t cap = m_storage.capacity();
891 size_t actual_idx = (m_state.write_index + cap - index) % cap;
892 return m_storage.buffer[actual_idx];
893 }

References MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::m_state, and MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::m_storage.