nlib
|
指定された数のリスナーがキューから要素を取得できます。全てのリスナーが取得後、要素はキューから削除されます。 [詳解]
#include "nn/nlib/LockFree.h"
公開型 | |
typedef UniquePtr< const T, empty_func > | DequeueType |
Dequeue() の引数となる型です | |
公開メンバ関数 | |
errno_t | Enqueue (const T *obj) noexcept |
キューに要素を追加します。スレッドセーフです。 [詳解] | |
errno_t | Dequeue (int32_t listener_id, DequeueType &obj) noexcept |
リスナーを指定してキューから要素を読み込みます。異なるlistener_id を利用している場合はスレッドセーフです。 [詳解] | |
size_t | GetListenerCount () const noexcept |
Init()で指定したリスナーの数を返します。スレッドセーフです。 | |
void | SwapUnsafe (LockFreeBroadcastQueue &rhs) noexcept |
オブジェクトをスワップします。スレッドセーフではありません。 | |
コンストラクタ、デストラクタ、及び初期化 | |
LockFreeBroadcastQueue () noexcept | |
デフォルトコンストラクタです。 | |
~LockFreeBroadcastQueue () noexcept | |
デストラクタです。 [詳解] | |
errno_t | Init (size_t max_size, size_t listeners) noexcept |
キューを初期化します。スレッドセーフではありません。 [詳解] | |
指定された数のリスナーがキューから要素を取得できます。全てのリスナーが取得後、要素はキューから削除されます。
T | キューの要素の型です。 |
LockFree.h の 739 行目に定義があります。
|
inlinenoexcept |
デストラクタです。
DestructorForLockFree
を利用して削除します。 必要な場合は関数テンプレートを特殊化して必要な処理を実行してください。 LockFree.h の 746 行目に定義があります。
|
inlinenoexcept |
リスナーを指定してキューから要素を読み込みます。異なるlistener_id
を利用している場合はスレッドセーフです。
[in] | listener_id | 0以上かつInit()で指定したリスナーの数未満の整数 |
[out] | obj | 読み込まれた要素 |
0 | 成功した場合 |
EAGAIN | 新たに読み取れる要素がキューにない場合 |
LockFree.h の 761 行目に定義があります。
|
inlinenoexcept |
キューに要素を追加します。スレッドセーフです。
[in] | obj | キューに追加する要素 |
0 | 成功した場合 |
EAGAIN | キューが一杯の場合 |
LockFree.h の 757 行目に定義があります。
|
inlinenoexcept |
キューを初期化します。スレッドセーフではありません。
[in] | max_size | キューに格納できる要素の最大数 |
[in] | listeners | リスナーの数 |
0 | 成功した場合 |
EINVAL | max_size がINT32_MAX を超えている場合 |
ENOMEM | メモリの確保に失敗した場合 |
LockFree.h の 753 行目に定義があります。
© Nintendo Co., Ltd. All rights reserved.