11#ifndef INCGUARD_MGL_TASK_NODE_H_1622533593
12#define INCGUARD_MGL_TASK_NODE_H_1622533593
28 constexpr Node(Identifier identifier) noexcept
29 : _identifier(identifier)
33 virtual ~Node() =
default;
51 constexpr void Kill() noexcept
53 _isRequestedKill =
true;
65 return _isRequestedKill;
76 _resideLevel = resideLevel;
99 return _resideLevel > ResideLevel::NoResident;
110 template <
typename TaskIDType>
111 constexpr void SetAsynchronous(
bool isEnabled, TaskIDType barrierIdentifier = TaskIDType()) noexcept
113 _isAsynchronous = isEnabled;
114 _barrierIdentifier = Identifier(barrierIdentifier);
126 return _isAsynchronous;
134 template <
typename TaskIDType = Identifier>
137 return TaskIDType(_barrierIdentifier);
149 return _barrierIdentifier > _identifier;
169 template <
typename EventIDType>
199 Identifier _identifier{0};
200 ResideLevel _resideLevel{ResideLevel::NoResident};
201 bool _isRequestedKill{
false};
202 bool _isAsynchronous{
false};
タスクノード
Definition mgl_task_node.h:20
constexpr bool IsResident() const noexcept
常駐タスクかどうかを取得
Definition mgl_task_node.h:97
constexpr void SetAsynchronous(bool isEnabled, TaskIDType barrierIdentifier=TaskIDType()) noexcept
非同期実行の設定
Definition mgl_task_node.h:111
constexpr void Kill() noexcept
削除要求
Definition mgl_task_node.h:51
constexpr bool IsEnabledBarrier() const noexcept
有効なバリアIDが設定されているかを取得
Definition mgl_task_node.h:147
virtual void OnInitialize() noexcept
タスク生成時に呼び出される関数
Definition mgl_task_node.h:157
constexpr TaskIDType GetBarrierIdentifier() const noexcept
非同期実行時のバリアIDを取得
Definition mgl_task_node.h:135
constexpr Identifier GetIdentifier() const noexcept
このタスクノードのIDを取得
Definition mgl_task_node.h:41
constexpr bool IsEnabledAsynchronous() const noexcept
非同期実行が有効化されているかを取得
Definition mgl_task_node.h:124
virtual void OnExecute(ExecuteStage stage) noexcept=0
タスク実行時に呼び出される関数
constexpr Node(Identifier identifier) noexcept
コンストラクタ
Definition mgl_task_node.h:28
constexpr void SetResideLevel(ResideLevel resideLevel) noexcept
常駐レベルの設定
Definition mgl_task_node.h:74
constexpr ResideLevel GetResideLevel() const noexcept
常駐レベルの取得
Definition mgl_task_node.h:85
constexpr bool IsRequestedKill() const noexcept
削除要求されているかを取得
Definition mgl_task_node.h:63
void NotifyEvent(EventIDType event, void *argument) noexcept
タスクへのイベント通知
Definition mgl_task_node.h:170
virtual void OnReceiveTaskEvent(EventIdentifier eventID, void *argument) noexcept
タスクのイベント受信処理
Definition mgl_task_node.h:192
uint32_t Identifier
実績用の識別子の型
Definition mgl_achievement_defs.h:26
ResideLevel
常駐レベル
Definition mgl_task_defs.h:109
uint32_t EventIdentifier
イベントIDを表す型
Definition mgl_task_defs.h:105
uint8_t ExecuteStage
実行ステージ
Definition mgl_task_defs.h:68