template<typename T>
sead::RingBuffer class

Derived classes

template<typename T, s32 N>
class FixedRingBuffer

Public types

class constIterator
class iterator

Constructors, destructors, conversion operators

RingBuffer() defaulted
RingBuffer(s32 capacity, T* buffer)
template<s32 N>
RingBuffer(T(&array)[N]) explicit
operator bool() const explicit

Public functions

auto begin() -> iterator
auto begin() const -> constIterator
auto begin(s32 start_idx) -> iterator
auto begin(s32 start_idx) const -> constIterator
auto end() -> iterator
auto end() const -> constIterator
void allocBuffer(s32 capacity, s32 alignment)
void allocBuffer(s32 capacity, Heap* heap, s32 alignment = sizeof(void*))
auto tryAllocBuffer(s32 capacity, s32 alignment = sizeof(void*)) -> bool
auto tryAllocBuffer(s32 capacity, Heap* heap, s32 alignment = sizeof(void*)) -> bool
void allocBufferAssert(s32 size, Heap* heap, s32 alignment = sizeof(void*))
void freeBuffer()
void setBuffer(s32 capacity, T* bufferptr)
auto isBufferReady() const -> bool
auto operator[](s32 idx) -> T&
auto operator[](s32 idx) const -> const T&
auto get(s32 idx) -> T*
auto get(s32 idx) const -> const T*
auto operator()(s32 idx) -> T&
auto operator()(s32 idx) const -> const T&
auto unsafeGet(s32 idx) -> T*
auto unsafeGet(s32 idx) const -> const T*
auto front() -> T&
auto front() const -> const T&
auto back() -> T&
auto back() const -> const T&
auto capacity() const -> s32
auto size() const -> s32
auto empty() const -> bool
auto data() -> T*
auto data() const -> const T*
auto forcePushBack(const T& item) -> bool
auto pushBack(const T& item) -> bool
void forcePushBackwards(const T& item, u32 offset = 1)
auto pushBackwards(const T& item) -> bool
auto popFront() -> T
void clear()

Protected functions

auto calcRealIdx(s32 idx) const -> s32
auto wrapIndex(s32 idx) const -> s32

Protected variables

T* mBuffer
s32 mCapacity
s32 mHead
s32 mSize