sead
Loading...
Searching...
No Matches
sead::HeapMgr Class Reference

#include <seadHeapMgr.h>

Inherits sead::hostio::Node.

Classes

struct  AllocFailedCallbackArg

Public Types

typedef FixedPtrArray< Heap, NUM_INDEPENDENT_HEAPS_MAXIndependentHeaps

Public Member Functions

 HeapMgr ()
virtual ~HeapMgr ()
HeapfindContainHeap (const void *memBlock) const
HeapgetCurrentHeap () const
IAllocFailedCallbacksetAllocFailedCallback (IAllocFailedCallback *callback)
IAllocFailedCallbackgetAllocFailedCallback ()
void callCreateCallback_ (Heap *)

Static Public Member Functions

static void initialize (u32 size)
static void initialize (Arena *arena)
static void destroy ()
static bool isInitialized ()
static HeapMgrinstance ()
static HeapgetRootHeap (s32 n)
static s32 getRootHeapNum ()
static void addRootHeap (Heap *heap)
static const ArenagetArena ()
static IndependentHeapsgetIndependentHeaps ()
static bool isContainedInAnyHeap (const void *ptr)
static CriticalSectiongetHeapTreeLockCS_ ()

Protected Member Functions

HeapsetCurrentHeap_ (Heap *heap)

Static Protected Member Functions

static void createRootHeap_ ()
static void initializeImpl_ ()

Protected Attributes

IAllocFailedCallbackmAllocFailedCallback

Static Protected Attributes

static HeapMgr sInstance
static HeapMgrsInstancePtr = nullptr
static ArenasArena = nullptr
static Arena sDefaultArena
static RootHeaps sRootHeaps
static CriticalSection sHeapTreeLockCS
static IndependentHeaps sIndependentHeaps

Private Types

typedef IDelegate1< const AllocFailedCallbackArg * > IAllocFailedCallback
typedef FixedPtrArray< Heap, NUM_ROOT_HEAPS_MAXRootHeaps

Friends

class CurrentHeapSetter

Member Typedef Documentation

◆ IAllocFailedCallback

◆ RootHeaps

◆ IndependentHeaps

Constructor & Destructor Documentation

◆ HeapMgr()

sead::HeapMgr::HeapMgr ( )

◆ ~HeapMgr()

sead::HeapMgr::~HeapMgr ( )
virtual

Member Function Documentation

◆ initialize() [1/2]

void sead::HeapMgr::initialize ( u32 size)
static

◆ initialize() [2/2]

void sead::HeapMgr::initialize ( Arena * arena)
static

◆ destroy()

void sead::HeapMgr::destroy ( )
static

◆ isInitialized()

bool sead::HeapMgr::isInitialized ( )
inlinestatic

◆ instance()

HeapMgr * sead::HeapMgr::instance ( )
inlinestatic

◆ findContainHeap()

Heap * sead::HeapMgr::findContainHeap ( const void * memBlock) const

◆ getCurrentHeap()

Heap * sead::HeapMgr::getCurrentHeap ( ) const

◆ getRootHeap()

Heap * sead::HeapMgr::getRootHeap ( s32 n)
inlinestatic

◆ getRootHeapNum()

s32 sead::HeapMgr::getRootHeapNum ( )
inlinestatic

◆ addRootHeap()

void sead::HeapMgr::addRootHeap ( Heap * heap)
static

◆ getArena()

const Arena * sead::HeapMgr::getArena ( )
static

◆ getIndependentHeaps()

IndependentHeaps * sead::HeapMgr::getIndependentHeaps ( )
inlinestatic

◆ isContainedInAnyHeap()

bool sead::HeapMgr::isContainedInAnyHeap ( const void * ptr)
inlinestatic

◆ setAllocFailedCallback()

IAllocFailedCallback * sead::HeapMgr::setAllocFailedCallback ( IAllocFailedCallback * callback)

◆ getAllocFailedCallback()

IAllocFailedCallback * sead::HeapMgr::getAllocFailedCallback ( )

◆ callCreateCallback_()

void sead::HeapMgr::callCreateCallback_ ( Heap * )
inline

◆ getHeapTreeLockCS_()

CriticalSection * sead::HeapMgr::getHeapTreeLockCS_ ( )
inlinestatic

◆ setCurrentHeap_()

Heap * sead::HeapMgr::setCurrentHeap_ ( Heap * heap)
protected

◆ createRootHeap_()

void sead::HeapMgr::createRootHeap_ ( )
staticprotected

◆ initializeImpl_()

void sead::HeapMgr::initializeImpl_ ( )
staticprotected

◆ CurrentHeapSetter

friend class CurrentHeapSetter
friend

Member Data Documentation

◆ mAllocFailedCallback

IAllocFailedCallback* sead::HeapMgr::mAllocFailedCallback
protected

◆ sInstance

HeapMgr sead::HeapMgr::sInstance
staticprotected

◆ sInstancePtr

HeapMgr * sead::HeapMgr::sInstancePtr = nullptr
staticprotected

◆ sArena

Arena * sead::HeapMgr::sArena = nullptr
staticprotected

◆ sDefaultArena

Arena sead::HeapMgr::sDefaultArena
staticprotected

◆ sRootHeaps

HeapMgr::RootHeaps sead::HeapMgr::sRootHeaps
staticprotected

◆ sHeapTreeLockCS

CriticalSection sead::HeapMgr::sHeapTreeLockCS
staticprotected

◆ sIndependentHeaps

HeapMgr::IndependentHeaps sead::HeapMgr::sIndependentHeaps
staticprotected