OROCHI
 
Loading...
Searching...
No Matches
GxSysResourceAsyncLoadMulti Class Reference

リソース非同期読み込み要求管理クラス(マルチリクエスト可能版) More...

#include <GxSysResource.h>

Inheritance diagram for GxSysResourceAsyncLoadMulti:
Collaboration diagram for GxSysResourceAsyncLoadMulti:

Classes

class  GxAsyncLoadThreadMulti
 非同期ロードスレッドクラス More...
 

Public Member Functions

操作
 GxSysResourceAsyncLoadMulti (void)
 デフォルトコンストラクタ
 
 ~GxSysResourceAsyncLoadMulti (void) override
 デストラクタ
 
b32 initialize (u32 queueMax, u32 asyncLoadThreadStackSize=GX_ASYNC_LOAD_THREAD_STACKSIZE, u32 multiCount=4, s32 cpuIndex=GX_ASYNC_LOAD_THREAD_CPU_INDEX) override
 初期化
 
void terminate (void) override
 終了
 
void clear (void) override
 クリア
 
b32 isEmpty (void) override
 リクエストキューが空かどうか(全ての読み込みスレッドのキューが空かどうか)
 
b32 request (GxResBase *pResource) override
 リクエスト
 
void lockAsyncLoad (void) override
 非同期読み込みロック(読み込み中のファイルは終わるまでブロック)
 
void unlockAsyncLoad (void) override
 非同期読み込みロック解除(必ず lockAsyncLoad() と対に使用すること)
 
GX_FORCE_INLINE u32 getMultiCount (void) const override
 非同期読み込み並列化の数(この実装ではスレッド数)
 
- Public Member Functions inherited from GxSysResourceAsyncLoadBase
 GxSysResourceAsyncLoadBase (void)
 コンストラクタ
 
 ~GxSysResourceAsyncLoadBase (void) override
 デストラクタ
 
virtual GX_FORCE_INLINE void update (void)
 更新
 
void loadAsync (void *pObject)
 非同期読み込みジョブ
 
void setOnTerminateCallback (void(*pFunction)(u32))
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 

Static Public Attributes

定義
static constexpr u32 MAX_MULTI_PROCESS_COUNT = GxMath::VALUE_8
 最大マルチ化数
 

Protected Attributes

メンバ変数
GxCriticalSection _requestQueueCriticalSection
 クリティカルセクション
 
GxLockFreeQueue< GxResBase *, GxAllocatorList::ALLOCATOR_TYPE::SYSTEM_requestQueueMulti [MAX_MULTI_PROCESS_COUNT]
 リクエストキュー(通常処理)
 
GxAsyncLoadThreadMulti_threadMulti [MAX_MULTI_PROCESS_COUNT]
 非同期ロードスレッド
 
b32 _isStopThread
 非同期ロードスレッド停止要求フラグ
 
u32 _currentIndexOfMulti
 カレントマルチインデックス
 
u32 _multiCount
 スレッド数
 
- Protected Attributes inherited from GxSysResourceAsyncLoadBase
void(* _onTerminateProc )(u32)
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 

Detailed Description

リソース非同期読み込み要求管理クラス(マルチリクエスト可能版)

Member Function Documentation

◆ clear()

void GxSysResourceAsyncLoadMulti::clear ( void )
overridevirtual

クリア

Reimplemented from GxSysResourceAsyncLoadBase.

Reimplemented in GxSysResourceAsyncLoadMultiWithSharedQueue.

◆ getMultiCount()

GX_FORCE_INLINE u32 GxSysResourceAsyncLoadMulti::getMultiCount ( void ) const
inlineoverridevirtual

非同期読み込み並列化の数(この実装ではスレッド数)

Reimplemented from GxSysResourceAsyncLoadBase.

◆ initialize()

b32 GxSysResourceAsyncLoadMulti::initialize ( u32 queueMax,
u32 asyncLoadThreadStackSize = GX_ASYNC_LOAD_THREAD_STACKSIZE,
u32 multiCount = 4,
s32 cpuIndex = GX_ASYNC_LOAD_THREAD_CPU_INDEX )
overridevirtual

初期化

Parameters
queueMax[in] リクエストキューサイズ
asyncLoadThreadStackSize[in] スタックサイズ
multiCount[in] 並列数
cpuIndex[in] CPUインデックス
threadName[in] スレッド名
Returns
成功ならtrue

Reimplemented from GxSysResourceAsyncLoadBase.

Reimplemented in GxSysResourceAsyncLoadMultiWithSharedQueue.

Here is the call graph for this function:

◆ isEmpty()

b32 GxSysResourceAsyncLoadMulti::isEmpty ( void )
overridevirtual

リクエストキューが空かどうか(全ての読み込みスレッドのキューが空かどうか)

Returns
空ならtrue

Reimplemented from GxSysResourceAsyncLoadBase.

Reimplemented in GxSysResourceAsyncLoadMultiWithSharedQueue.

Here is the call graph for this function:

◆ lockAsyncLoad()

void GxSysResourceAsyncLoadMulti::lockAsyncLoad ( void )
overridevirtual

非同期読み込みロック(読み込み中のファイルは終わるまでブロック)

Reimplemented from GxSysResourceAsyncLoadBase.

◆ request()

b32 GxSysResourceAsyncLoadMulti::request ( GxResBase * pResource)
overridevirtual

リクエスト

Parameters
pResource[in] リクエストリソース
Returns
登録成功ならtrue

Reimplemented from GxSysResourceAsyncLoadBase.

Reimplemented in GxSysResourceAsyncLoadMultiWithSharedQueue.

Here is the call graph for this function:

◆ terminate()

void GxSysResourceAsyncLoadMulti::terminate ( void )
overridevirtual

終了

Reimplemented from GxSysResourceAsyncLoadBase.

Reimplemented in GxSysResourceAsyncLoadMultiWithSharedQueue.

Here is the call graph for this function:

◆ unlockAsyncLoad()

void GxSysResourceAsyncLoadMulti::unlockAsyncLoad ( void )
overridevirtual

非同期読み込みロック解除(必ず lockAsyncLoad() と対に使用すること)

Reimplemented from GxSysResourceAsyncLoadBase.


The documentation for this class was generated from the following files: