12GX_CORE_NAMESPACE_BEGIN()
111 static GxGuiBase* createGui(
GxProperty& property,
GxTypedObject* pOwner,
const GxRtti& rtti, u32 index){
return GxStructBase::createGui(property, pOwner, rtti, index); }
158 constexpr void*
operator new[](
size_t size, GX_CSTR filename = __FILE__, u32 line = __LINE__);
160 constexpr void*
operator new[](
size_t size);
177 static GxGuiBase* createGui(
GxProperty& property,
GxTypedObject* pOwner,
const GxRtti& rtti, u32 index){
return GxStructBase::createGui(property, pOwner, rtti, index); }
207 static b32 _delayReleaseFlag;
227#define GX_PROHIBIT_NEW(__CLASS__) \
230 ~__CLASS__(void) override {} \
233#define GX_PROHIBIT_COPY(__CLASS__) \
235 __CLASS__(const __CLASS__&) = delete; \
237 GX_FORCE_INLINE const __CLASS__& operator=(const __CLASS__&) = delete; \
240#define GX_PROHIBIT_CLASS_BASE(__CLASS__) \
241 GX_PROHIBIT_COPY(__CLASS__) \
244#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__) \
245 GX_PROHIBIT_NEW(__CLASS__) \
246 GX_PROHIBIT_COPY(__CLASS__) \
250#define GX_PROHIBIT_CLASS_BASE_REFERENCE_ALLOW_COPY(__CLASS__) \
251 GX_PROHIBIT_NEW(__CLASS__) \
274 return static_cast<T
>(pObject);
293 return static_cast<T
>(pObject);
307 Super::operator = (base);
313GX_CORE_NAMESPACE_END()
316#define GX_SAFE_RELEASE(__POINTER__) if(__POINTER__){ GxClassBaseReference* __pOld__ = __POINTER__; __POINTER__ = nullptr; __pOld__->release(); }
318#define GX_SET_CLASS_BASE_REFERENCE(__DST__, __SRC__) { \
319 GxClassBaseReference* __pOldBase__ = (__DST__); \
320 __DST__ = (__SRC__); \
323 (__DST__)->addReference(); \
325 GX_SAFE_RELEASE(__pOldBase__); \
T gx_cast(GxClassBaseRoot *pObject)
Definition GxBase.h:264
void GxTypedObject
その他
Definition GxDefine.h:213
配列クラス
Definition GxArrayClassBase.h:18
オブジェクト基底クラス
Definition GxBase.h:88
~GxClassBase(void) override
デストラクタ
Definition GxBase.h:108
constexpr GxClassBase(const GxClassBase &base)
コピーコンストラクタ
Definition GxBase.h:106
参照オブジェクト基底クラス
Definition GxBase.h:122
virtual s32 getReferenceCount(void) const
参照カウンタを取得
Definition GxBase.h:187
static u32 getDelayReleaseListCount(void)
遅延解放待ちの数を取得
Definition GxBase.cpp:383
virtual s32 addReference(void)
参照カウンタを加算
Definition GxBase.cpp:303
static void initializeDelayRelease(void)
遅延解放リストの初期化
Definition GxBase.cpp:258
virtual void cleanup(void)
delete直前に呼び出される関数
Definition GxBase.cpp:248
void setDelayReleaseCountInfinity(b32 on)
無限解放待ちの設定
Definition GxBase.h:195
constexpr GxClassBaseReference & operator=(const GxClassBaseReference &base)
代入演算子
Definition GxBase.h:301
constexpr void setDelayReleaseCount(s32 count)
遅延解放カウンタを設定
Definition GxBase.h:193
s32 _delayReleaseCount
遅延解放カウンタ
Definition GxBase.h:204
static void terminateDelayRelease(void)
遅延解放リストの終了
Definition GxBase.cpp:271
static b32 isDelayReleaseEnable(void)
遅延解放システムの有効判定
Definition GxBase.h:189
virtual s32 release(void)
解放
Definition GxBase.cpp:319
s32 _referenceCount
参照カウンタ
Definition GxBase.h:203
static void updateDelayRelease(void)
遅延解放リストの更新
Definition GxBase.cpp:352
static constexpr s32 DELAY_RELEASE_COUNT_INFINITY
遅延解放の無限待ち定義
Definition GxBase.h:131
基底クラス
Definition GxBase.h:51
GX_FORCE_INLINE b32 isDefaultObject(void)
デフォルトオブジェクト判定
Definition GxBase.h:79
constexpr GxClassBaseRoot(void)
コンストラクタ
Definition GxBase.h:58
constexpr GxClassBaseRoot & operator=(const GxClassBaseRoot &)
代入演算子
Definition GxBase.h:64
constexpr GxClassBaseRoot(const GxClassBaseRoot &)
コピーコンストラクタ
Definition GxBase.h:60
virtual GX_FORCE_INLINE const GxTypedObject * getDefaultObject(void)
デフォルトオブジェクトを取得
Definition GxBase.h:77
static GX_FORCE_INLINE GxRtti & __getStaticRtti(void)
Rttiの取得
Definition GxBase.h:73
virtual ~GxClassBaseRoot(void)
デストラクタ
Definition GxBase.h:62
virtual GxRtti & getRtti(void) const =0
Rttiの取得
クリティカルセクションクラス
Definition GxThread.h:20
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
const GxTypedObject * getDefaultObject(GxTypedObject *pCustomObject=nullptr)
デフォルトオブジェクトを取得
Definition GxRtti.cpp:958
GX_FORCE_INLINE b32 isDerived(const GxRtti &rtti) const
継承されている型か判定
Definition GxRtti.h:372
static GxRtti & getRttiRoot(void)
RTTIルートを取得
Definition GxRtti.cpp:870
32bitブーリアン
Definition GxDefine.h:173