nlib
nn::nlib::threading::Tls< T > クラステンプレートfinal

スレッドローカルストレージを扱うためのクラスです。 [詳解]

#include "nn/nlib/threading/Tls.h"

公開メンバ関数

constexpr Tls () noexcept
 デフォルトコンストラクタです。
 
errno_t Init () noexcept
 スレッドローカルストレージを初期化します。 [詳解]
 
 ~Tls () noexcept
 デストラクタです。ポインタはdeleteされます。
 
T * Get () const noexcept
 設定したスレッド固有のポインタを取得します。 [詳解]
 
T * operator-> () const noexcept
 ポインタを返します。
 
T & operator* () const noexcept
 ポインタの参照外しを行います。
 
T * Release () noexcept
 設定したスレッド固有のポインタを解放します。 [詳解]
 
errno_t Reset (T *p=0) noexcept
 設定したスレッド固有のポインタを置き換えます。 [詳解]
 

詳解

template<class T>
class nn::nlib::threading::Tls< T >

スレッドローカルストレージを扱うためのクラスです。

テンプレート引数
Tポインタを格納するオブジェクトの型
説明
nlib_tls をラップしています。

Tls.h26 行目に定義があります。

関数詳解

◆ Get()

template<class T >
nn::nlib::threading::Tls< T >::Get ( ) const
inlinenoexcept

設定したスレッド固有のポインタを取得します。

戻り値
型Tのオブジェクトへのポインタ

Tls.h57 行目に定義があります。

◆ Init()

template<class T >
nn::nlib::threading::Tls< T >::Init ( )
inlinenoexcept

スレッドローカルストレージを初期化します。

戻り値
0初期化に成功した場合
ENOMEMシステムリソースが足りない場合
説明
スレッドローカルストレージを利用する前に1回だけ実行します。

Tls.h30 行目に定義があります。

◆ Release()

template<class T >
nn::nlib::threading::Tls< T >::Release ( )
inlinenoexcept

設定したスレッド固有のポインタを解放します。

戻り値
型Tのオブジェクトへのポインタ
説明
実行後はポインタはTlsの管理下ではなくなります。

Tls.h65 行目に定義があります。

◆ Reset()

template<class T >
nn::nlib::threading::Tls< T >::Reset ( T *  p = 0)
inlinenoexcept

設定したスレッド固有のポインタを置き換えます。

引数
[in]p(new で確保された)オブジェクトへのポインタ
戻り値
0初期化が成功した場合
ENOMEMシステムリソースが足りない場合
説明
Tlsが保有していたポインタはdeleteされて、p が置き換わります。

Tls.h70 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: