|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
Indexed collection of independent, equal-ranked Seqlock instances. More...
#include <SeqLock.hpp>
Collaboration diagram for MayaFlux::Memory::SeqlockArray:Public Member Functions | |
| SeqlockArray & | operator= (const SeqlockArray &)=delete |
| SeqlockArray & | operator= (SeqlockArray &&)=delete |
| const Seqlock & | operator[] (size_t i) const noexcept |
Access the Seqlock at index i (const overload). | |
| Seqlock & | operator[] (size_t i) noexcept |
Access the Seqlock at index i. | |
| void | resize (size_t n) |
| Replace the slot array with n default-constructed Seqlock instances. | |
| SeqlockArray ()=default | |
| SeqlockArray (const SeqlockArray &)=delete | |
| SeqlockArray (SeqlockArray &&)=delete | |
| SeqlockArray (size_t n) | |
| size_t | size () const noexcept |
| Number of slots. | |
| ~SeqlockArray ()=default | |
Private Attributes | |
| std::vector< std::unique_ptr< Seqlock > > | m_slots |
Indexed collection of independent, equal-ranked Seqlock instances.
Manages N independently lockable Seqlock slots with no privileged index. Suitable wherever a container holds N equal data slots (layers, channels, ring positions) that may be written and read independently and concurrently.
Slots are heap-allocated individually via unique_ptr to satisfy alignas(64) without violating the non-copyable / non-movable contract of Seqlock.
resize() is not safe to call concurrently with any read or write operation on this instance.
Definition at line 269 of file SeqLock.hpp.