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

CriticalSection等をラップするためのクラスです。 [詳解]

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

公開型

typedef T mutex_type
 T.
 
typedef mutex_type::native_handle_type native_handle_type
 mutex_type::native_handle_type
 

公開メンバ関数

void lock ()
 関連付けられたCriticalSection等をロックします。
 
void unlock () noexcept
 関連付けられたCriticalSection等をアンロックします。
 
bool try_lock () noexcept
 関連付けられたCriticalSection等のロックを試みます。
 
bool try_lock_for (const TimeSpan &timeout) noexcept
 関連付けられたCriticalSection等のタイムアウト付きロックを試みます。
 
bool try_lock_until (const DateTime &abstime) noexcept
 関連付けられたCriticalSection等のタイムアウト付きロックを試みます。
 
void swap (UniqueLock &rhs) noexcept
 関連付けられているCriticalSection等のオブジェクトをスワップします。 [詳解]
 
mutex_typerelease () noexcept
 関連付けを解除します。アンロックはされません。 [詳解]
 
mutex_typemutex () const noexcept
 関連付けられているCriticalSection等のオブジェクトへのポインタを取得します。 [詳解]
 
native_handle_type native_handle ()
 ロックを表す実装固有のハンドルを返します。
 
bool owns_lock () const noexcept
 UniqueLockに関連付けられたロックがロックされていればtrueを返します。
 
 operator bool () const
 ロックを保持していればtrueを返します。
 
基本的なメンバ関数
 UniqueLock () noexcept
 関連付けなしにオブジェクトを初期化します。
 
 UniqueLock (mutex_type &rhs)
 CriticalSection等をロックして、このオブジェクトに関連付けます。 [詳解]
 
 UniqueLock (mutex_type &rhs, AdoptLockType)
 CriticalSection等が既にロックされていると仮定して、ロックせずにオブジェクトを初期化します。 デストラクタではアンロックされます。 [詳解]
 
 UniqueLock (mutex_type &rhs, DeferLockType) noexcept
 ロックせずにオブジェクトを初期化します。 [詳解]
 
 UniqueLock (mutex_type &rhs, TryToLockType)
 初期化の際にtry_lock()でロックを試みます。 [詳解]
 
UniqueLockassign (UniqueLock &rhs, move_tag)
 swapを利用したムーブにより代入します。
 
 UniqueLock (UniqueLock &rhs, move_tag)
 swapを利用したムーブによりオブジェクトを構築します。
 
 UniqueLock (UniqueLock &&rhs)
 ムーブコンストラクタです。C++11の利用時に有効です。
 
UniqueLockoperator= (UniqueLock &&rhs)
 ムーブ代入演算子です。C++11の利用時に有効です。
 

詳解

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

CriticalSection等をラップするためのクラスです。

テンプレート引数
TCriticalSection等のクラス

CriticalSection.h275 行目に定義があります。

構築子と解体子

template<class T >
nn::nlib::threading::UniqueLock< T >::UniqueLock ( mutex_type rhs)
inlineexplicit

CriticalSection等をロックして、このオブジェクトに関連付けます。

引数
[in]rhsCriticalSection等のオブジェクト

CriticalSection.h280 行目に定義があります。

template<class T >
nn::nlib::threading::UniqueLock< T >::UniqueLock ( mutex_type rhs,
AdoptLockType   
)
inline

CriticalSection等が既にロックされていると仮定して、ロックせずにオブジェクトを初期化します。 デストラクタではアンロックされます。

引数
[in]rhsCriticalSection等のオブジェクト

CriticalSection.h283 行目に定義があります。

template<class T >
nn::nlib::threading::UniqueLock< T >::UniqueLock ( mutex_type rhs,
DeferLockType   
)
inlinenoexcept

ロックせずにオブジェクトを初期化します。

引数
[in]rhsCriticalSection等のオブジェクト

CriticalSection.h286 行目に定義があります。

template<class T >
nn::nlib::threading::UniqueLock< T >::UniqueLock ( mutex_type rhs,
TryToLockType   
)
inline

初期化の際にtry_lock()でロックを試みます。

引数
[in]rhsCriticalSection等のオブジェクト

CriticalSection.h289 行目に定義があります。

関数詳解

template<class T >
nn::nlib::threading::UniqueLock< T >::mutex ( ) const
inlinenoexcept

関連付けられているCriticalSection等のオブジェクトへのポインタを取得します。

戻り値
関連付けられているCriticalSection等のオブジェクトへのポインタ

CriticalSection.h347 行目に定義があります。

template<class T >
nn::nlib::threading::UniqueLock< T >::release ( )
inlinenoexcept

関連付けを解除します。アンロックはされません。

戻り値
関連付けられているCriticalSection等のオブジェクトへのポインタ

CriticalSection.h341 行目に定義があります。

template<class T >
nn::nlib::threading::UniqueLock< T >::swap ( UniqueLock< T > &  rhs)
inlinenoexcept

関連付けられているCriticalSection等のオブジェクトをスワップします。

引数
[in]rhsスワップするオブジェクト

CriticalSection.h336 行目に定義があります。


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