sead
Loading...
Searching...
No Matches
sead::ObjArray< T > Class Template Reference

#include <seadObjArray.h>

Inherits sead::PtrArrayImpl.

Inherited by sead::FixedObjArray< T, N >.

Classes

class  constIterator
class  iterator
union  Node

Public Types

using CompareCallback = s32 (*)(const T*, const T*)

Public Member Functions

 ObjArray ()=default
 ObjArray (s32 max_num, void *buf)
void allocBuffer (s32 capacity, Heap *heap, s32 alignment=cDefaultAlignment)
bool tryAllocBuffer (s32 capacity, Heap *heap, s32 alignment=cDefaultAlignment)
void setBuffer (s32 max_num, void *buf)
void freeBuffer ()
T * at (s32 pos) const
T * unsafeAt (s32 pos) const
T * operator() (s32 pos) const
T * operator[] (s32 pos) const
T * front () const
T * back () const
void pushBack (const T &item)
template<class... Args>
T * emplaceBack (Args &&... args)
void insert (s32 pos, const T &item)
void erase (int index)
void erase (int index, int count)
void clear ()
void sort ()
void sort (CompareCallback cmp)
void heapSort ()
void heapSort (CompareCallback cmp)
bool equal (const ObjArray &other, CompareCallback cmp) const
s32 compare (const ObjArray &other, CompareCallback cmp) const
s32 binarySearch (const T *ptr) const
s32 binarySearch (const T *ptr, CompareCallback cmp) const
bool operator== (const ObjArray &other) const
bool operator!= (const ObjArray &other) const
bool operator< (const ObjArray &other) const
bool operator<= (const ObjArray &other) const
bool operator> (const ObjArray &other) const
bool operator>= (const ObjArray &other) const
void uniq ()
void uniq (CompareCallback cmp)
iterator begin () const
iterator end () const
constIterator constBegin () const
constIterator constEnd () const
T ** data () const
Public Member Functions inherited from sead::PtrArrayImpl
 PtrArrayImpl ()
void setBuffer (s32 ptrNumMax, void *buf)
void allocBuffer (s32 ptrNumMax, Heap *heap, s32 alignment=4)
bool tryAllocBuffer (s32 ptrNumMax, Heap *heap, s32 alignment=4)
void freeBuffer ()
bool isBufferReady () const
bool isEmpty () const
bool isFull () const
s32 size () const
s32 maxSize () const
void erase (s32 pos)
void erase (s32 pos, s32 num)
void clear ()
void resize (s32)
void unsafeResize (s32)
void swap (s32 pos1, s32 pos2)
void reverse ()
PtrArrayImploperator= (const PtrArrayImpl &)
void shuffle ()
void shuffle (Random *random)

Static Public Member Functions

static constexpr size_t calculateWorkBufferSize (size_t n)

Static Public Attributes

static constexpr size_t ElementSize = sizeof(Node)

Protected Member Functions

T * alloc (const T &item)
Protected Member Functions inherited from sead::PtrArrayImpl
void * at (s32 n) const
void * unsafeAt (s32 n) const
void * front () const
void * back () const
void pushBack (void *ptr)
void pushFront (void *ptr)
void * popBack ()
void * popFront ()
void replace (s32 pos, void *ptr)
void * find (const void *ptr, CompareCallbackImpl cmp) const
s32 search (const void *ptr, CompareCallbackImpl cmp) const
bool equal (const PtrArrayImpl &o, CompareCallbackImpl cmp) const
s32 indexOf (const void *ptr) const
void createVacancy (s32 pos, s32 num)
void insert (s32 pos, void *ptr)
void insertArray (s32 pos, void *array, s32 array_length, s32 elem_size)
bool checkInsert (s32 pos, s32 num)
void sort (CompareCallbackImpl cmp)
void heapSort (CompareCallbackImpl cmp)
s32 compare (const PtrArrayImpl &o, CompareCallbackImpl cmp) const
void uniq (CompareCallbackImpl cmp)
s32 binarySearch (const void *ptr, CompareCallbackImpl cmp) const

Static Protected Member Functions

static s32 compareT (const void *a, const void *b)
static s32 compareT (const T *a, const T *b)

Protected Attributes

sead::FreeList mFreeList
Protected Attributes inherited from sead::PtrArrayImpl
s32 mPtrNum
s32 mPtrNumMax
void ** mPtrs

Additional Inherited Members

Protected Types inherited from sead::PtrArrayImpl
typedef s32(* CompareCallbackImpl) (const void *, const void *)

Member Typedef Documentation

◆ CompareCallback

template<typename T>
using sead::ObjArray< T >::CompareCallback = s32 (*)(const T*, const T*)

Constructor & Destructor Documentation

◆ ObjArray() [1/2]

template<typename T>
sead::ObjArray< T >::ObjArray ( )
default

◆ ObjArray() [2/2]

template<typename T>
sead::ObjArray< T >::ObjArray ( s32 max_num,
void * buf )
inline

Member Function Documentation

◆ allocBuffer()

template<typename T>
void sead::ObjArray< T >::allocBuffer ( s32 capacity,
Heap * heap,
s32 alignment = cDefaultAlignment )
inline

◆ tryAllocBuffer()

template<typename T>
bool sead::ObjArray< T >::tryAllocBuffer ( s32 capacity,
Heap * heap,
s32 alignment = cDefaultAlignment )
inline

◆ setBuffer()

template<typename T>
void sead::ObjArray< T >::setBuffer ( s32 max_num,
void * buf )
inline

◆ freeBuffer()

template<typename T>
void sead::ObjArray< T >::freeBuffer ( )
inline

◆ at()

template<typename T>
T * sead::ObjArray< T >::at ( s32 pos) const
inline

◆ unsafeAt()

template<typename T>
T * sead::ObjArray< T >::unsafeAt ( s32 pos) const
inline

◆ operator()()

template<typename T>
T * sead::ObjArray< T >::operator() ( s32 pos) const
inline

◆ operator[]()

template<typename T>
T * sead::ObjArray< T >::operator[] ( s32 pos) const
inline

◆ front()

template<typename T>
T * sead::ObjArray< T >::front ( ) const
inline

◆ back()

template<typename T>
T * sead::ObjArray< T >::back ( ) const
inline

◆ pushBack()

template<typename T>
void sead::ObjArray< T >::pushBack ( const T & item)
inline

◆ emplaceBack()

template<typename T>
template<class... Args>
T * sead::ObjArray< T >::emplaceBack ( Args &&... args)
inline

◆ insert()

template<typename T>
void sead::ObjArray< T >::insert ( s32 pos,
const T & item )
inline

◆ erase() [1/2]

template<typename T>
void sead::ObjArray< T >::erase ( int index)
inline

◆ erase() [2/2]

template<typename T>
void sead::ObjArray< T >::erase ( int index,
int count )
inline

◆ clear()

template<typename T>
void sead::ObjArray< T >::clear ( )
inline

◆ sort() [1/2]

template<typename T>
void sead::ObjArray< T >::sort ( )
inline

◆ sort() [2/2]

template<typename T>
void sead::ObjArray< T >::sort ( CompareCallback cmp)
inline

◆ heapSort() [1/2]

template<typename T>
void sead::ObjArray< T >::heapSort ( )
inline

◆ heapSort() [2/2]

template<typename T>
void sead::ObjArray< T >::heapSort ( CompareCallback cmp)
inline

◆ equal()

template<typename T>
bool sead::ObjArray< T >::equal ( const ObjArray< T > & other,
CompareCallback cmp ) const
inline

◆ compare()

template<typename T>
s32 sead::ObjArray< T >::compare ( const ObjArray< T > & other,
CompareCallback cmp ) const
inline

◆ binarySearch() [1/2]

template<typename T>
s32 sead::ObjArray< T >::binarySearch ( const T * ptr) const
inline

◆ binarySearch() [2/2]

template<typename T>
s32 sead::ObjArray< T >::binarySearch ( const T * ptr,
CompareCallback cmp ) const
inline

◆ operator==()

template<typename T>
bool sead::ObjArray< T >::operator== ( const ObjArray< T > & other) const
inline

◆ operator!=()

template<typename T>
bool sead::ObjArray< T >::operator!= ( const ObjArray< T > & other) const
inline

◆ operator<()

template<typename T>
bool sead::ObjArray< T >::operator< ( const ObjArray< T > & other) const
inline

◆ operator<=()

template<typename T>
bool sead::ObjArray< T >::operator<= ( const ObjArray< T > & other) const
inline

◆ operator>()

template<typename T>
bool sead::ObjArray< T >::operator> ( const ObjArray< T > & other) const
inline

◆ operator>=()

template<typename T>
bool sead::ObjArray< T >::operator>= ( const ObjArray< T > & other) const
inline

◆ uniq() [1/2]

template<typename T>
void sead::ObjArray< T >::uniq ( )
inline

◆ uniq() [2/2]

template<typename T>
void sead::ObjArray< T >::uniq ( CompareCallback cmp)
inline

◆ begin()

template<typename T>
iterator sead::ObjArray< T >::begin ( ) const
inline

◆ end()

template<typename T>
iterator sead::ObjArray< T >::end ( ) const
inline

◆ constBegin()

template<typename T>
constIterator sead::ObjArray< T >::constBegin ( ) const
inline

◆ constEnd()

template<typename T>
constIterator sead::ObjArray< T >::constEnd ( ) const
inline

◆ data()

template<typename T>
T ** sead::ObjArray< T >::data ( ) const
inline

◆ calculateWorkBufferSize()

template<typename T>
constexpr size_t sead::ObjArray< T >::calculateWorkBufferSize ( size_t n)
inlinestaticconstexpr

◆ alloc()

template<typename T>
T * sead::ObjArray< T >::alloc ( const T & item)
inlineprotected

◆ compareT() [1/2]

template<typename T>
s32 sead::ObjArray< T >::compareT ( const void * a,
const void * b )
inlinestaticprotected

◆ compareT() [2/2]

template<typename T>
s32 sead::ObjArray< T >::compareT ( const T * a,
const T * b )
inlinestaticprotected

Member Data Documentation

◆ ElementSize

template<typename T>
size_t sead::ObjArray< T >::ElementSize = sizeof(Node)
staticconstexpr

◆ mFreeList

template<typename T>
sead::FreeList sead::ObjArray< T >::mFreeList
protected