セマフォクラス
[詳解]
#include "CSemaphore.h"
|
| CSemaphore () noexcept |
| コンストラクタ [詳解]
|
|
virtual | ~CSemaphore () noexcept |
| デストラクタ [詳解]
|
|
virtual bool | Release () noexcept override |
| リリース関数 [詳解]
|
|
virtual bool | Create (wchar_t const *pszObjectName=nullptr) noexcept |
| 作成関数 [詳解]
|
|
virtual bool | Create (LONG nInitial, LONG nMax, wchar_t const *pszObjectName=nullptr) noexcept |
| 作成関数 [詳解]
|
|
virtual bool | Open (wchar_t const *pszObjectName) noexcept |
| オープン関数 [詳解]
|
|
virtual bool | AddCount (long nCount, long &rnPrev) noexcept |
| カウント加算関数 [詳解]
|
|
| CSync () noexcept |
| コンストラクタ [詳解]
|
|
virtual | ~CSync () noexcept |
| デストラクタ [詳解]
|
|
virtual HANDLE | GetHandle () const noexcept |
| オブジェクトハンドル取得関数 [詳解]
|
|
virtual bool | IsCreate () const noexcept |
| 新規作成状態取得関数 [詳解]
|
|
virtual void | Close () noexcept |
| クローズ関数 [詳解]
|
|
virtual bool | Wait (DWORD dwTime=INFINITE) noexcept |
| ウェイト関数 [詳解]
|
|
virtual bool | Lock (DWORD dwTime=INFINITE) noexcept |
| ロック関数 [詳解]
|
|
virtual bool | Unlock () noexcept |
| ロック解除関数 [詳解]
|
|
セマフォクラス
セマフォクラスです。
- 注意
- なし
CSemaphore.h の 30 行目に定義があります。
LibCommon::CSemaphore::CSemaphore |
( |
| ) |
|
|
explicitnoexcept |
virtual LibCommon::CSemaphore::~CSemaphore |
( |
| ) |
|
|
inlinevirtualnoexcept |
LibCommon::CSemaphore::CSemaphore |
( |
CSemaphore const & |
| ) |
|
|
privatedelete |
bool LibCommon::CSemaphore::Release |
( |
| ) |
|
|
overridevirtualnoexcept |
bool LibCommon::CSemaphore::Create |
( |
wchar_t const * |
pszObjectName = nullptr | ) |
|
|
virtualnoexcept |
作成関数
作成関数です。
- 引数
-
- 戻り値
- 実行結果
- 注意
- なし
CSemaphore.cpp の 52 行目に定義があります。
54 return Create( 1, 1, pszObjectName );
virtual bool Create(wchar_t const *pszObjectName=nullptr) noexcept
作成関数
bool LibCommon::CSemaphore::Create |
( |
LONG |
nInitial, |
|
|
LONG |
nMax, |
|
|
wchar_t const * |
pszObjectName = nullptr |
|
) |
| |
|
virtualnoexcept |
作成関数
作成関数です。
- 引数
-
[in] | nInitial | 初期値 |
[in] | nMax | 最大値 |
[in] | pszObjectName | オブジェクト名 |
- 戻り値
- 実行結果
- 注意
- なし
CSemaphore.cpp の 59 行目に定義があります。
参照先 LibCommon::CSync::Close(), LibCommon::CSync::m_bIsCreate, LibCommon::CSync::m_hObject, OBJECT_NAME_EXT.
70 wchar_t szBuffer[ MAX_PATH ];
71 if (
nullptr != pszObjectName ) {
73 ::wcscpy_s( szBuffer, pszObjectName );
75 pszObjectName = szBuffer;
79 m_hObject = ::CreateSemaphoreW(
nullptr, nInitial, nMax, pszObjectName );
85 else if ( ERROR_ALREADY_EXISTS != ::GetLastError() ) {
virtual void Close() noexcept
クローズ関数
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
HANDLE m_hObject
オブジェクトハンドル
bool LibCommon::CSemaphore::Open |
( |
wchar_t const * |
pszObjectName | ) |
|
|
virtualnoexcept |
オープン関数
オープン関数です。
- 引数
-
- 戻り値
- 実行結果
- 注意
- なし
CSemaphore.cpp の 100 行目に定義があります。
参照先 LibCommon::CSync::Close(), LibCommon::CSync::m_hObject, OBJECT_NAME_EXT.
105 if (
nullptr == pszObjectName ) {
116 wchar_t szBuffer[ MAX_PATH ];
117 ::wcscpy_s( szBuffer, pszObjectName );
119 pszObjectName = szBuffer;
122 m_hObject = ::OpenSemaphoreW( SEMAPHORE_ALL_ACCESS,
false, pszObjectName );
virtual void Close() noexcept
クローズ関数
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
HANDLE m_hObject
オブジェクトハンドル
bool LibCommon::CSemaphore::AddCount |
( |
long |
nCount, |
|
|
long & |
rnPrev |
|
) |
| |
|
virtualnoexcept |
wchar_t const *const LibCommon::CSemaphore::OBJECT_NAME_EXT = L".CSemaphore" |
|
staticprotected |
このクラス詳解は次のファイルから抽出されました:
- C:/Work/VisualStudio2017/Solution46/Include/Library/LibCommon/CSemaphore.h
- C:/Work/VisualStudio2017/Solution46/Source/Library/LibCommon/CSemaphore.cpp