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

同期実行ワーカースレッド管理クラス More...

#include <GxThread.h>

Inheritance diagram for GxSequentialThreadManager:
Collaboration diagram for GxSequentialThreadManager:

Public Member Functions

アクセサ
GX_FORCE_INLINE u32 getMaxThread (void) override
 最大スレッド数を取得
 
GX_FORCE_INLINE u32 getNumThread (void) override
 スレッド数を取得
 
GX_FORCE_INLINE u32 getNumWorkerThread (void)
 ワーカースレッド数を取得
 
GX_FORCE_INLINE void setNumWorkerThread (u32 num)
 スレッド数を設定
 
GX_FORCE_INLINE b32 isExecuteJob (void) const
 ジョブが実行中か判定
 
- Public Member Functions inherited from GxWorkerThreadManager
virtual s32 getNumMaxJob (void)
 最大ジョブ数を取得
 
 GxWorkerThreadManager (void)
 コンストラクタ
 
virtual void terminate (void)
 終了
 
- 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)
 デフォルトオブジェクト判定
 

Protected Attributes

メンバ変数
GxJobInformation_pJobInformation
 ジョブ情報
 
s32 _executeJobIndex
 実行しているジョブインデックス
 
b32 _useMainThreadFlag
 メインスレッドを使用するか
 
b32 _executeJobFlag
 ジョブ実行中フラグ
 
s32 _numJob
 ジョブ数
 
- Protected Attributes inherited from GxWorkerThreadManager
GxWorkerThread_pThread [GxThread::HARDWARE_THREAD_MAX]
 スレッド
 
u32 _numThread
 スレッド数
 
u32 _maxThread
 動的な最大スレッド数
 
s32 _maxJob
 最大ジョブ数
 

Friends

定義
class GxWorkerThread
 
- Friends inherited from GxWorkerThreadManager

初期化

 GxSequentialThreadManager (void)
 デフォルトコンストラクタ
 
 GxSequentialThreadManager (b32 useMainThreadFlag)
 コンストラクタ
 
 ~GxSequentialThreadManager (void) override
 デストラクタ
 
void initialize (GxThread::PRIORITY priority, s32 maxJob, u32 stackSize=GX_WORKER_THREAD_STACKSIZE) override
 初期化
 
void initializeThreadLocalStorage (void) override
 TLSの初期化
 

操作

s32 addJob (GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION pFunction) override
 ジョブ追加
 
s32 addJob (GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION_PARAM pFunction, u32 argument, ARGUMENT_TYPE argumentType=ARGUMENT_TYPE::U32) override
 ジョブ追加
 
s32 addJob (GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION_POINTER pFunction, void *pArgument) override
 ジョブ追加
 
void startJob (void) override
 ジョブ実行開始
 
void executeJob (GxThread *pThread) override
 ジョブ実行
 
virtual void startWorkerThreadAll (void)
 ワーカースレッド実行開始
 
GX_FORCE_INLINE b32 isComplete (void) override
 全てのジョブが完了したか
 

Additional Inherited Members

- Public Types inherited from GxWorkerThreadManager
enum class  ARGUMENT_TYPE { NONE , U32 , POINTER }
 引数の種別 More...
 
- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Attributes inherited from GxWorkerThreadManager
static constexpr u32 WORKER_THREAD_MAX = 3
 ハードウェアスレッド最大数-1(1個は描画スレッドに使う)
 
static constexpr s32 INVALID_HANDLE = -1
 無効なハンドル
 
- Protected Member Functions inherited from GxWorkerThreadManager

Detailed Description

同期実行ワーカースレッド管理クラス

Member Function Documentation

◆ addJob() [1/3]

s32 GxSequentialThreadManager::addJob ( GxClassBaseRoot * pObject,
GX_OBJECT_FUNCTION pFunction )
overridevirtual

ジョブ追加

Parameters
pObject[in] オブジェクト
pFunction[in] 関数
Returns
ジョブハンドル

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the caller graph for this function:

◆ addJob() [2/3]

s32 GxSequentialThreadManager::addJob ( GxClassBaseRoot * pObject,
GX_OBJECT_FUNCTION_PARAM pFunction,
u32 argument,
ARGUMENT_TYPE argumentType = ARGUMENT_TYPE::U32 )
overridevirtual

ジョブ追加

Parameters
pObject[in] オブジェクト
pFunction[in] 関数
argument[in] 引数
argumentType[in] 引数の種類
Returns
ジョブハンドル

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

◆ addJob() [3/3]

s32 GxSequentialThreadManager::addJob ( GxClassBaseRoot * pObject,
GX_OBJECT_FUNCTION_POINTER pFunction,
void * pArgument )
overridevirtual

ジョブ追加

Parameters
pObject[in] オブジェクト
pFunction[in] 関数
argument[in] 引数
Returns
ジョブハンドル

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

◆ executeJob()

void GxSequentialThreadManager::executeJob ( GxThread * pThread)
overrideprotectedvirtual

ジョブ実行

Parameters
pThread[in] スレッド

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMaxThread()

GX_FORCE_INLINE u32 GxSequentialThreadManager::getMaxThread ( void )
inlineoverridevirtual

最大スレッド数を取得

Reimplemented from GxWorkerThreadManager.

Here is the caller graph for this function:

◆ getNumThread()

GX_FORCE_INLINE u32 GxSequentialThreadManager::getNumThread ( void )
inlineoverridevirtual

スレッド数を取得

Reimplemented from GxWorkerThreadManager.

◆ initialize()

void GxSequentialThreadManager::initialize ( GxThread::PRIORITY priority,
s32 maxJob,
u32 stackSize = GX_WORKER_THREAD_STACKSIZE )
overridevirtual

初期化

Parameters
priority[in] 優先度
maxJob[in] ジョブ最大数
name[in] スレッド名
stackSize[in] スタックサイズ

Reimplemented from GxWorkerThreadManager.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initializeThreadLocalStorage()

void GxSequentialThreadManager::initializeThreadLocalStorage ( void )
inlineoverrideprotectedvirtual

TLSの初期化

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMain.

Here is the caller graph for this function:

◆ isComplete()

GX_FORCE_INLINE b32 GxSequentialThreadManager::isComplete ( void )
inlineoverrideprotectedvirtual

全てのジョブが完了したか

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the caller graph for this function:

◆ startJob()

void GxSequentialThreadManager::startJob ( void )
overridevirtual

ジョブ実行開始

Implements GxWorkerThreadManager.

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ startWorkerThreadAll()

void GxSequentialThreadManager::startWorkerThreadAll ( void )
protectedvirtual

ワーカースレッド実行開始

Reimplemented in GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the call graph for this function:
Here is the caller graph for this function:

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