11#ifndef INCGUARD_MGL_TASK_WEAK_NODE_H_1622684892
12#define INCGUARD_MGL_TASK_WEAK_NODE_H_1622684892
32 bool Set(
size_t listIndex) noexcept;
33 bool Set(const
Node *node) noexcept;
34 [[nodiscard]]
Node *
Get() const noexcept;
43 [[nodiscard]]
bool IsValid() const noexcept
45 return Get() !=
nullptr;
55 explicit operator bool() const noexcept
83 template <
class T, Identifier
identifier = Identifier(T::kTaskIdentifier)>
84 [[nodiscard]] T *
Get() const noexcept
86 if (
auto *node =
Get(); node !=
nullptr)
88 if (node->GetIdentifier() == identifier)
90 return reinterpret_cast<T *
>(node);
107 template <
typename EventIDType>
110 if (
auto *node =
Get(); node !=
nullptr)
112 node->NotifyEvent(event, argument);
129 if (
auto *node =
Get(); node !=
nullptr)
131 if (node->GetResideLevel() <= resideLevel)
142 size_t _listIndex{0};
143 Identifier _identifier{0};
144 UniqueIdentifier _uniqueID{UniqueIdentifier::Invalid};
タスクノード
Definition mgl_task_node.h:20
弱参照タスクノード
Definition mgl_task_weak_node.h:20
T * Get() const noexcept
指定したタスクノードにキャストして取得
Definition mgl_task_weak_node.h:84
bool IsValid() const noexcept
参照先の有効状態を取得
Definition mgl_task_weak_node.h:43
bool operator!() const noexcept
有効状態を否定演算子で取得
Definition mgl_task_weak_node.h:67
bool Set(size_t listIndex) noexcept
ノードの設定
Definition mgl_task_weak_node.cc:51
bool Kill(ResideLevel resideLevel=ResideLevel::NoResident) noexcept
参照先タスクを削除
Definition mgl_task_weak_node.h:127
Node * Get() const noexcept
ノードの取得
Definition mgl_task_weak_node.cc:111
constexpr WeakNode() noexcept=default
コンストラクタ
bool NotifyEvent(EventIDType event, void *argument) noexcept
タスクへのイベント通知
Definition mgl_task_weak_node.h:108
ResideLevel
常駐レベル
Definition mgl_task_defs.h:109