sead
Loading...
Searching...
No Matches
seadTaskMgr.h File Reference

Go to the source code of this file.

Classes

class  sead::TaskMgr
struct  sead::TaskMgr::InitializeArg

Namespaces

namespace  sead

Macros

#define SEAD_TASK_SINGLETON_DISPOSER(CLASS)
#define SEAD_TASK_SET_SINGLETON_INSTANCE(CLASS)
#define SEAD_TASK_DELETE_SINGLETON_INSTANCE(CLASS)
#define SEAD_TASK_SINGLETON_DISPOSER_IMPL(CLASS)

Macro Definition Documentation

◆ SEAD_TASK_SINGLETON_DISPOSER

#define SEAD_TASK_SINGLETON_DISPOSER ( CLASS)
Value:
public: \
static CLASS* instance() { return sInstance; } \
static void setInstance_(sead::TaskBase* instance); \
static void deleteInstance(); \
\
protected: \
class SingletonDisposer_ \
{ \
public: \
SingletonDisposer_() : mIsSetAsSingleton_(false) { } \
~SingletonDisposer_(); \
\
bool mIsSetAsSingleton_; \
}; \
\
private: \
CLASS(const CLASS&); \
const CLASS& operator=(const CLASS&); \
\
protected: \
SingletonDisposer_ mSingletonDisposer_; \
\
static CLASS* sInstance; \
\
friend class SingletonDisposer_;
Definition seadTaskBase.h:26

◆ SEAD_TASK_SET_SINGLETON_INSTANCE

#define SEAD_TASK_SET_SINGLETON_INSTANCE ( CLASS)
Value:
void CLASS::setInstance_(sead::TaskBase* instance) \
{ \
if (CLASS::sInstance == nullptr) \
{ \
CLASS::sInstance = static_cast<CLASS*>(instance); \
static_cast<CLASS*>(instance)->mSingletonDisposer_.mIsSetAsSingleton_ = true; \
} \
else \
{ \
/*SEAD_ASSERT_MSG(false, "Create Singleton Twice (%s) : addr %x", "CLASS", CLASS::sInstance);*/ \
} \
}

◆ SEAD_TASK_DELETE_SINGLETON_INSTANCE

#define SEAD_TASK_DELETE_SINGLETON_INSTANCE ( CLASS)
Value:
void CLASS::deleteInstance() \
{ \
if (CLASS::sInstance != nullptr) \
{ \
CLASS::sInstance->mTaskMgr->destroyTaskSync(CLASS::sInstance); \
CLASS::sInstance = nullptr; \
} \
}

◆ SEAD_TASK_SINGLETON_DISPOSER_IMPL

#define SEAD_TASK_SINGLETON_DISPOSER_IMPL ( CLASS)
Value:
CLASS* CLASS::sInstance = nullptr; \
\
SEAD_TASK_SET_SINGLETON_INSTANCE(CLASS) \
SEAD_TASK_DELETE_SINGLETON_INSTANCE(CLASS) \
\
CLASS::SingletonDisposer_::~SingletonDisposer_() \
{ \
if (mIsSetAsSingleton_) \
{ \
CLASS::sInstance = nullptr; \
} \
}