nlib
|
ロックフリーなスタックを実装しているクラスです。 [詳解]
#include "nn/nlib/LockFree.h"
公開型 | |
typedef T * | PopType |
Pop() , PopUnsafe() の引数となる型です [詳解] | |
公開メンバ関数 | |
LockFreeStack () noexcept | |
デフォルトコンストラクタです。 | |
~LockFreeStack () noexcept | |
デストラクタです。 [詳解] | |
errno_t | Init (size_t count) noexcept |
スタックを初期化します。スレッドセーフではありません。 [詳解] | |
errno_t | Push (const T &x) noexcept |
スタックに要素x を積みます。スレッドセーフです。 [詳解] | |
errno_t | Pop (PopType x) noexcept |
スタックから要素を取り出してx に格納します。スレッドセーフです。 [詳解] | |
errno_t | PushUnsafe (const T &x) noexcept |
スタックに要素x を積みます。スレッドセーフではありません。 [詳解] | |
errno_t | PopUnsafe (PopType x) noexcept |
スタックから要素を取り出してx に格納します。スレッドセーフではありません。 [詳解] | |
void | SwapUnsafe (LockFreeStack &rhs) noexcept |
オブジェクトをスワップします。スレッドセーフではありません。 | |
ロックフリーなスタックを実装しているクラスです。
T | スタックに積む要素の型です。PODである必要があります。 |
Push()
及びPop()
メンバ関数がスレッドセーフです。 T
にポインタ型を指定した場合、スタックに積まれたT
型のオブジェクトはDestructorForLockFree
によって自動的に削除されます。 LockFree.h の 463 行目に定義があります。
nn::nlib::LockFreeStack< T >::PopType |
Pop()
, PopUnsafe()
の引数となる型です
T
がポインタ型の場合はDestructorForLockFree
で自動的にデストラクトされるようにUniquePtr
がtypedefされています。 LockFree.h の 465 行目に定義があります。
|
inlinenoexcept |
デストラクタです。
DestructorForLockFree
を利用して削除します。 必要な場合は関数テンプレートを特殊化して必要な処理を実行してください。 LockFree.h の 467 行目に定義があります。
|
inlinenoexcept |
スタックを初期化します。スレッドセーフではありません。
[in] | count | スタックに積むことのできる要素の数 |
0 | 成功した場合 |
ENOMEM | メモリの確保に失敗した場合 |
EALREADY | 既に初期化済みの場合 |
LockFree.h の 471 行目に定義があります。
|
inlinenoexcept |
スタックから要素を取り出してx
に格納します。スレッドセーフです。
[in] | x | スタックから取りだされた要素が格納される領域 |
0 | 成功した場合 |
EAGAIN | スタックが空の場合 |
LockFree.h の 478 行目に定義があります。
|
inlinenoexcept |
スタックから要素を取り出してx
に格納します。スレッドセーフではありません。
[in] | x | スタックから取りだされた要素が格納される領域 |
0 | 成功した場合 |
EAGAIN | スタックが空の場合 |
LockFree.h の 482 行目に定義があります。
|
inlinenoexcept |
スタックに要素x
を積みます。スレッドセーフです。
[in] | x | スタックに積まれる要素 |
0 | 成功した場合 |
EAGAIN | スタックが一杯の場合 |
LockFree.h の 477 行目に定義があります。
|
inlinenoexcept |
スタックに要素x
を積みます。スレッドセーフではありません。
[in] | x | スタックに積まれる要素 |
0 | 成功した場合 |
EAGAIN | スタックが一杯の場合 |
LockFree.h の 480 行目に定義があります。
© 2012-2017 Nintendo Co., Ltd. All rights reserved.