Go to the source code of this file.
◆ SEAD_TASK_SINGLETON_DISPOSER
| #define SEAD_TASK_SINGLETON_DISPOSER |
( |
| CLASS | ) |
|
Value: public: \
static CLASS* instance() { return sInstance; } \
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:
{ \
if (CLASS::sInstance == nullptr) \
{ \
CLASS::sInstance = static_cast<CLASS*>(instance); \
static_cast<CLASS*>(instance)->mSingletonDisposer_.mIsSetAsSingleton_ = true; \
} \
else \
{ \
\
} \
}
◆ 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; \
} \
}