OROCHI
 
Loading...
Searching...
No Matches
GxWorkerThreadManager Class Referenceabstract

ワーカースレッド管理クラス More...

#include <GxThread.h>

Inheritance diagram for GxWorkerThreadManager:
Collaboration diagram for GxWorkerThreadManager:

Classes

struct  GxJobInformation
 ジョブ情報 More...
 

Public Member Functions

アクセサ
virtual u32 getMaxThread (void)
 最大スレッド数を取得
 
virtual u32 getNumThread (void)
 スレッド数を取得
 
virtual s32 getNumMaxJob (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

メンバ変数
GxWorkerThread_pThread [GxThread::HARDWARE_THREAD_MAX]
 スレッド
 
u32 _numThread
 スレッド数
 
u32 _maxThread
 動的な最大スレッド数
 
s32 _maxJob
 最大ジョブ数
 

定義

enum class  ARGUMENT_TYPE { NONE , U32 , POINTER }
 引数の種別 More...
 
class GxWorkerThread
 
static constexpr u32 WORKER_THREAD_MAX = 3
 ハードウェアスレッド最大数-1(1個は描画スレッドに使う)
 
static constexpr s32 INVALID_HANDLE = -1
 無効なハンドル
 

初期化

 GxWorkerThreadManager (void)
 コンストラクタ
 
virtual void initialize (GxThread::PRIORITY priority, s32 maxJob, u32 stackSize=GX_WORKER_THREAD_STACKSIZE)
 初期化
 
virtual void terminate (void)
 終了
 
virtual void initializeThreadLocalStorage (void)=0
 TLSの初期化
 

操作

virtual s32 addJob (GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION pFunction)=0
 ジョブ追加
 
virtual s32 addJob (GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION_PARAM pFunction, u32 argument, ARGUMENT_TYPE argumentType=ARGUMENT_TYPE::U32)=0
 ジョブ追加
 
virtual s32 addJob (GxClassBaseRoot *pObject, GX_OBJECT_FUNCTION_POINTER pFunction, void *pArgument)=0
 ジョブ追加
 
virtual void startJob (void)=0
 ジョブ実行開始
 
virtual void executeJob (GxThread *pWorkerThread)=0
 ジョブ実行
 
virtual b32 isComplete (void)=0
 全てのジョブが完了したか
 

Additional Inherited Members

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

Detailed Description

ワーカースレッド管理クラス

Member Enumeration Documentation

◆ ARGUMENT_TYPE

引数の種別

Enumerator
NONE 

引数なし

U32 

u32引数

POINTER 

void*引数

Member Function Documentation

◆ addJob() [1/3]

virtual s32 GxWorkerThreadManager::addJob ( GxClassBaseRoot * pObject,
GX_OBJECT_FUNCTION pFunction )
pure virtual

◆ addJob() [2/3]

virtual s32 GxWorkerThreadManager::addJob ( GxClassBaseRoot * pObject,
GX_OBJECT_FUNCTION_PARAM pFunction,
u32 argument,
ARGUMENT_TYPE argumentType = ARGUMENT_TYPE::U32 )
pure virtual

◆ addJob() [3/3]

virtual s32 GxWorkerThreadManager::addJob ( GxClassBaseRoot * pObject,
GX_OBJECT_FUNCTION_POINTER pFunction,
void * pArgument )
pure virtual

◆ executeJob()

virtual void GxWorkerThreadManager::executeJob ( GxThread * pWorkerThread)
protectedpure virtual

ジョブ実行

Implemented in GxSequentialThreadManager, and GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the caller graph for this function:

◆ getMaxThread()

virtual u32 GxWorkerThreadManager::getMaxThread ( void )
inlinevirtual

最大スレッド数を取得

Reimplemented in GxSequentialThreadManager.

◆ getNumThread()

virtual u32 GxWorkerThreadManager::getNumThread ( void )
inlinevirtual

スレッド数を取得

Reimplemented in GxSequentialThreadManager.

◆ initialize()

void GxWorkerThreadManager::initialize ( GxThread::PRIORITY priority,
s32 maxJob,
u32 stackSize = GX_WORKER_THREAD_STACKSIZE )
virtual

初期化

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

GX_DEVELOP

Reimplemented in GxSequentialThreadManager.

Here is the call graph for this function:

◆ initializeThreadLocalStorage()

virtual void GxWorkerThreadManager::initializeThreadLocalStorage ( void )
protectedpure virtual

TLSの初期化

Implemented in GxSequentialThreadManager, and GxSysMain::GxSequentialThreadManagerMain.

Here is the caller graph for this function:

◆ isComplete()

virtual b32 GxWorkerThreadManager::isComplete ( void )
protectedpure virtual

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

Implemented in GxSequentialThreadManager, and GxSysMain::GxSequentialThreadManagerMainPrecede.

Here is the caller graph for this function:

◆ startJob()

virtual void GxWorkerThreadManager::startJob ( void )
pure virtual

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