MayaFlux 0.5.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 866 of file RingBuffer.hpp.

868 {
869 const size_t count = size();
870 if (count == 0) {
871 return m_storage.buffer[m_state.write_index];
872 }
873
874 const size_t cap = m_storage.capacity();
875 size_t oldest_idx = (m_state.write_index + cap - count + 1) % cap;
876 return m_storage.buffer[oldest_idx];
877 }
size_t 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: