nlib
|
ロックフリーなキューを実装しているクラスです。 [詳解]
#include "nn/nlib/LockFree.h"
公開型 | |
typedef T * | DequeueType |
Dequeue() , DequeueUnsafe() の引数となる型です [詳解] | |
公開メンバ関数 | |
LockFreeQueue () noexcept | |
デフォルトコンストラクタです。 | |
~LockFreeQueue () noexcept | |
デストラクタです。 [詳解] | |
errno_t | Init (size_t count) noexcept |
キューを初期化します。スレッドセーフではありません。 [詳解] | |
errno_t | Enqueue (const T &x) noexcept |
キューに要素x を追加します。スレッドセーフです。 [詳解] | |
errno_t | Dequeue (DequeueType x) noexcept |
キューから要素を取り出してx に格納します。スレッドセーフです。 [詳解] | |
errno_t | EnqueueUnsafe (const T &x) noexcept |
キューに要素x を追加します。スレッドセーフではありません。 [詳解] | |
errno_t | DequeueUnsafe (DequeueType x) noexcept |
キューから要素を取り出してx に格納します。スレッドセーフではありません。 [詳解] | |
ロックフリーなキューを実装しているクラスです。
T | キューの要素の型です。PODである必要があります。 |
Enqueue()
及びDequeue()
メンバ関数がスレッドセーフです。 T
にポインタ型を指定した場合、キューに追加されたT
型のオブジェクトはDestructorForLockFree
を利用して削除されます。 LockFree.h の 524 行目に定義があります。
nn::nlib::LockFreeQueue< T >::DequeueType |
Dequeue()
, DequeueUnsafe()
の引数となる型です
T
がポインタ型の場合はDestructorForLockFree
で自動的にデストラクトされるようにUniquePtr
がtypedefされています。 LockFree.h の 526 行目に定義があります。
|
inlinenoexcept |
デストラクタです。
DestructorForLockFree
を利用して削除します。 必要な場合は関数テンプレートを特殊化して必要な処理を実行してください。 LockFree.h の 528 行目に定義があります。
|
inlinenoexcept |
キューから要素を取り出してx
に格納します。スレッドセーフです。
[in] | x | キューから取りだされた要素が格納される領域 |
0 | 成功した場合 |
EAGAIN | キューが空の場合 |
LockFree.h の 539 行目に定義があります。
|
inlinenoexcept |
キューから要素を取り出してx
に格納します。スレッドセーフではありません。
[in] | x | キューから取りだされた要素が格納される領域 |
0 | 成功した場合 |
EAGAIN | キューが空の場合 |
LockFree.h の 543 行目に定義があります。
|
inlinenoexcept |
キューに要素x
を追加します。スレッドセーフです。
[in] | x | キューに追加される要素 |
0 | 成功した場合 |
EAGAIN | キューが一杯の場合 |
LockFree.h の 538 行目に定義があります。
|
inlinenoexcept |
キューに要素x
を追加します。スレッドセーフではありません。
[in] | x | キューに追加される要素 |
0 | 成功した場合 |
EAGAIN | キューが一杯の場合 |
LockFree.h の 541 行目に定義があります。
|
inlinenoexcept |
キューを初期化します。スレッドセーフではありません。
[in] | count | キューに追加することの出来る要素の数 |
0 | 成功した場合 |
ENOMEM | メモリの確保に失敗した場合 |
EALREADY | 既に初期化済みの場合 |
LockFree.h の 532 行目に定義があります。
© 2013, 2014, 2015 Nintendo Co., Ltd. All rights reserved.