agl::detail::AtomicPtrArrayImpl class

Derived classes

template<typename T>
class agl::utl::AtomicPtrArray

Constructors, destructors, conversion operators

AtomicPtrArrayImpl() defaulted
AtomicPtrArrayImpl(s32 ptrNumMax, void* buf)

Public functions

void setBuffer(s32 ptrNumMax, void* buf)
void allocBuffer(s32 ptrNumMax, sead::Heap* heap, s32 alignment = sizeof(void*))
void freeBuffer()
auto isBufferReady() const -> bool
auto isEmpty() const -> bool
auto isFull() const -> bool
auto size() const -> s32
auto capacity() const -> s32
void erase(s32 position)
void erase(s32 position, s32 count)
void clear()
void swap(s32 pos1, s32 pos2)
void shuffle()
void shuffle(sead::Random* random)

Protected types

using CompareCallbackImpl = int(*)(const void*a, const void*b)

Protected functions

auto at(s32 idx) const -> void*
auto unsafeAt(s32 idx) const -> void*
auto front() const -> void*
auto back() const -> void*
void pushBack(void* ptr)
auto popBack() -> void*
auto popFront() -> void*
auto find(const void* ptr, CompareCallbackImpl cmp) const -> void*
auto search(const void* ptr, CompareCallbackImpl cmp) const -> s32
auto equal(const AtomicPtrArrayImpl& other, CompareCallbackImpl cmp) const -> bool
auto indexOf(const void* ptr) const -> s32
void sort(CompareCallbackImpl cmp)
void heapSort(CompareCallbackImpl cmp)

Protected variables

sead::Atomic<s32> mPtrNum
sead::Atomic<s32> mPtrNumMax
void** mPtrs