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

◆ reset()

template<typename T , typename StoragePolicy , typename ConcurrencyPolicy = SingleThreadedPolicy, typename AccessPattern = QueueAccess>
void MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::reset ( )
inlinenoexcept

Clear buffer contents and reset indices.

Real-time Safe: No allocations, just resets atomic indices.

Definition at line 1119 of file RingBuffer.hpp.

1120 {
1121 if constexpr (is_mpsc) {
1122 m_state.claim_index.store(0, std::memory_order_release);
1123 m_state.read_index.store(0, std::memory_order_release);
1124 for (auto& f : m_state.ready_flags)
1125 f.store(false, std::memory_order_release);
1126 } else if constexpr (is_lock_free) {
1127 m_state.write_index.store(0, std::memory_order_release);
1128 m_state.read_index.store(0, std::memory_order_release);
1129 } else {
1130 m_state.write_index = 0;
1131 m_state.read_index = 0;
1132 }
1133 }
static constexpr bool is_lock_free
static constexpr bool is_mpsc
std::shared_ptr< T > store(std::shared_ptr< T > obj)
Transfer ownership of an existing object to the persistent store for process lifetime.
Definition Persist.hpp:28

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