10#ifndef INCGUARD_MGL_TASK_NODE_SUBLIST_H_1680165354
11#define INCGUARD_MGL_TASK_NODE_SUBLIST_H_1680165354
13#include <condition_variable>
33 : _identifier(identifier)
54 [[nodiscard]]
constexpr size_t GetCount() const noexcept
81 template <
typename Function>
82 void ForEach(Function function)
noexcept
84 for (
auto *list : {_activeTop, _standbyTop})
88 std::unique_lock<std::mutex> lock(_mutex, std::defer_lock);
89 if (list == _standbyTop)
95 while (current !=
nullptr)
97 if (!function(*current))
101 current = current->next;
108 NodeListElement *_activeTop{
nullptr};
109 NodeListElement *_activeTail{
nullptr};
110 NodeListElement *_standbyTop{
nullptr};
111 NodeListElement *_standbyTail{
nullptr};
タスクノード
Definition mgl_task_node.h:20
タスクリストのサブリスト
Definition mgl_task_node_sublist.h:24
void ExecuteAndRemove(ExecuteStage stage, NodeListElement *freeTop) noexcept
タスクリストの実行と削除
Definition mgl_task_node_sublist.cc:86
bool AddNodeListElement(NodeListElement *element) noexcept
ノードリストの要素を追加
Definition mgl_task_node_sublist.cc:22
void ActivateStandbyTask()
スタンバイ状態のタスクをアクティベート
Definition mgl_task_node_sublist.cc:52
constexpr Identifier GetIdentifier() const noexcept
タスクIDの取得
Definition mgl_task_node_sublist.h:43
void ParallelExecute(ExecuteStage stage, ThreadPool &threadPool) noexcept
タスクリストを並列実行
Definition mgl_task_node_sublist.cc:117
void Remove(NodeListElement *freeTop) noexcept
削除要求のあるノードを削除
Definition mgl_task_node_sublist.cc:153
const NodeListElement * GetElement(const Node *node) noexcept
ノードのリスト上の要素を取得
Definition mgl_task_node_sublist.cc:204
void NotifyEvent(EventIdentifier eventIdentifier, void *argument) noexcept
タスクにイベントを通知
Definition mgl_task_node_sublist.cc:246
uint32_t Kill(ResideLevel resideLevel) noexcept
削除要求
Definition mgl_task_node_sublist.cc:178
NodeSubList(Identifier identifier) noexcept
コンストラクタ
Definition mgl_task_node_sublist.h:32
constexpr size_t GetCount() const noexcept
タスクの要素数を取得
Definition mgl_task_node_sublist.h:54
void GetNodeArray(STL::vector< WeakNode > &weakNodeArray) noexcept
ノードの配列を取得
Definition mgl_task_node_sublist.cc:229
Definition mgl_task_thread_pool.h:23
uint32_t Identifier
実績用の識別子の型
Definition mgl_achievement_defs.h:26
std::vector< T, Allocator< T > > vector
std::vectorの代替
Definition mgl_stl_containers.h:51
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
ノードの要素
Definition mgl_task_node_list_element.h:19