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

◆ peek_oldest()

template<typename T , typename StoragePolicy , typename ConcurrencyPolicy = SingleThreadedPolicy, typename AccessPattern = QueueAccess>
const_reference MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::peek_oldest ( ) const
inline

Peek at oldest element without removing.

Returns
Reference to oldest element

Only available for SingleThreadedPolicy (HistoryBufferAccess). Returns element at highest valid index in delay line.

Definition at line 779 of file RingBuffer.hpp.

781 {
782 const size_t count = size();
783 if (count == 0) {
784 return m_storage.buffer[m_state.write_index];
785 }
786
787 const size_t cap = m_storage.capacity();
788 size_t oldest_idx = (m_state.write_index + cap - count + 1) % cap;
789 return m_storage.buffer[oldest_idx];
790 }
Eigen::Index count
size_t size() const noexcept
Get approximate element count.

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

+ Here is the call graph for this function: