Solution46
LibCommon::CEvent クラス

イベントクラス [詳解]

#include "CEvent.h"

LibCommon::CEvent の継承関係図
Inheritance graph
LibCommon::CEvent 連携図
Collaboration graph

公開メンバ関数

 CEvent () noexcept
 コンストラクタ [詳解]
 
virtual ~CEvent () noexcept
 デストラクタ [詳解]
 
virtual bool Release () noexcept override
 リリース関数 [詳解]
 
virtual bool Create (wchar_t const *pszObjectName=nullptr) noexcept
 作成関数 [詳解]
 
virtual bool Create (bool bManual, bool bState, wchar_t const *pszObjectName=nullptr) noexcept
 作成関数 [詳解]
 
virtual bool Open (wchar_t const *pszObjectName) noexcept
 オープン関数 [詳解]
 
virtual bool Set () noexcept
 シグナルセット関数 [詳解]
 
virtual bool Reset () noexcept
 シグナルリセット関数 [詳解]
 
virtual bool Pulse () noexcept
 シグナルパルス関数 [詳解]
 
- 基底クラス LibCommon::CSync に属する継承公開メンバ関数
 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
 ロック解除関数 [詳解]
 

静的限定公開変数類

static wchar_t const *const OBJECT_NAME_EXT = L".CEvent"
 オブジェクト名拡張子 [詳解]
 

非公開メンバ関数

 CEvent (CEvent const &)=delete
 
CEventoperator= (CEvent const &)=delete
 

その他の継承メンバ

- 基底クラス LibCommon::CSync に属する継承限定公開変数類
HANDLE m_hObject
 オブジェクトハンドル [詳解]
 
bool m_bIsCreate
 新規作成フラグ [詳解]
 

詳解

イベントクラス

イベントクラスです。

注意
なし

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

構築子と解体子

LibCommon::CEvent::CEvent ( )
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
なし
戻り値
なし
注意
なし

CEvent.cpp28 行目に定義があります。

30  : CSync()
31  {}
CSync() noexcept
コンストラクタ
Definition: CSync.cpp:28
virtual LibCommon::CEvent::~CEvent ( )
inlinevirtualnoexcept

デストラクタ

デストラクタです。

引数
なし
戻り値
なし
注意
なし

CEvent.h54 行目に定義があります。

54 {}
LibCommon::CEvent::CEvent ( CEvent const &  )
privatedelete

関数詳解

bool LibCommon::CEvent::Release ( )
overridevirtualnoexcept

リリース関数

リリース関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバライド関数です。

LibCommon::CSyncを実装しています。

CEvent.cpp37 行目に定義があります。

参照先 Reset().

37  {
38  // シグナルをリセットする
39  return Reset();
40  }
virtual bool Reset() noexcept
シグナルリセット関数
Definition: CEvent.cpp:150

呼び出し関係図:

bool LibCommon::CEvent::Create ( wchar_t const *  pszObjectName = nullptr)
virtualnoexcept

作成関数

作成関数です。

引数
[in]pszObjectNameオブジェクト名
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CEvent.cpp44 行目に定義があります。

44  {
45  // 引数を指定してイベントを作成する
46  return Create( false, false, pszObjectName );
47  }
virtual bool Create(wchar_t const *pszObjectName=nullptr) noexcept
作成関数
Definition: CEvent.cpp:44
bool LibCommon::CEvent::Create ( bool  bManual,
bool  bState,
wchar_t const *  pszObjectName = nullptr 
)
virtualnoexcept

作成関数

作成関数です。

引数
[in]bManual手動モードフラグ
[in]bState初期状態
[in]pszObjectNameオブジェクト名
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CEvent.cpp51 行目に定義があります。

参照先 LibCommon::CSync::Close(), LibCommon::CSync::m_bIsCreate, LibCommon::CSync::m_hObject, OBJECT_NAME_EXT.

51  {
52  // 処理ブロック
53  bool result = false;
54  do {
55  // イベントハンドルを調べる
56  if ( nullptr != m_hObject ) {
57  // クローズする
58  Close();
59  }
60 
61  // オブジェクト名を調べる
62  wchar_t szBuffer[ MAX_PATH ];
63  if ( nullptr != pszObjectName ) {
64  // オブジェクト名に拡張子を追加する
65  ::wcscpy_s( szBuffer, pszObjectName );
66  ::wcscat_s( szBuffer, OBJECT_NAME_EXT );
67  pszObjectName = szBuffer;
68  }
69 
70  // イベントを作成する
71  m_hObject = ::CreateEventW( nullptr, bManual, bState, pszObjectName );
72  if ( nullptr == m_hObject ) {
73  // 失敗!
74  break;
75  }
76  // エラーコードを調べる
77  else if ( ERROR_ALREADY_EXISTS != ::GetLastError() ) {
78  // 新規作成フラグをセットする
79  m_bIsCreate = true;
80  }
81 
82  // 成功!
83  result = true;
84  } while ( false );
85 
86  // 実行結果を返す
87  return result;
88  }
virtual void Close() noexcept
クローズ関数
Definition: CSync.cpp:45
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
Definition: CEvent.h:155
bool m_bIsCreate
新規作成フラグ
Definition: CSync.h:153
HANDLE m_hObject
オブジェクトハンドル
Definition: CSync.h:152

呼び出し関係図:

bool LibCommon::CEvent::Open ( wchar_t const *  pszObjectName)
virtualnoexcept

オープン関数

オープン関数です。

引数
[in]pszObjectNameオブジェクト名
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CEvent.cpp92 行目に定義があります。

参照先 LibCommon::CSync::Close(), LibCommon::CSync::m_hObject, OBJECT_NAME_EXT.

参照元 LibLogOut::CLibLogOut::Flush().

92  {
93  // 処理ブロック
94  bool result = false;
95  do {
96  // オブジェクト名を調べる
97  if ( nullptr == pszObjectName ) {
98  // 失敗!
99  break;
100  }
101  // イベントハンドルを調べる
102  else if ( nullptr != m_hObject ) {
103  // クローズする
104  Close();
105  }
106 
107  // オブジェクト名に拡張子を追加する
108  wchar_t szBuffer[ MAX_PATH ];
109  ::wcscpy_s( szBuffer, pszObjectName );
110  ::wcscat_s( szBuffer, OBJECT_NAME_EXT );
111  pszObjectName = szBuffer;
112 
113  // イベントをオープンする
114  m_hObject = ::OpenEventW( EVENT_ALL_ACCESS, false, pszObjectName );
115  if ( nullptr == m_hObject ) {
116  // 失敗!
117  break;
118  }
119 
120  // 成功!
121  result = true;
122  } while ( false );
123 
124  // 実行結果を返す
125  return result;
126  }
virtual void Close() noexcept
クローズ関数
Definition: CSync.cpp:45
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
Definition: CEvent.h:155
HANDLE m_hObject
オブジェクトハンドル
Definition: CSync.h:152

呼び出し関係図:

被呼び出し関係図:

bool LibCommon::CEvent::Set ( )
virtualnoexcept

シグナルセット関数

シグナルセット関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CEvent.cpp130 行目に定義があります。

参照先 LibCommon::CSync::m_hObject.

参照元 LibCommon::CConsoleMenu::ExecMenu(), LibCommon::CConsoleMenu::ExecSubThread(), LibLogOut::CLibLogOut::Flush(), LibCommon::CConsoleMenu::SubThreadProc(), LibLogOut::CLibLogOut::SubThreadProc().

130  {
131  // 処理ブロック
132  bool result = false;
133  do {
134  // イベントをシグナル状態にする
135  if ( 0 == ::SetEvent( m_hObject ) ) {
136  // 失敗!
137  break;
138  }
139 
140  // 成功!
141  result = true;
142  } while ( false );
143 
144  // 実行結果を返す
145  return result;
146  }
HANDLE m_hObject
オブジェクトハンドル
Definition: CSync.h:152

被呼び出し関係図:

bool LibCommon::CEvent::Reset ( )
virtualnoexcept

シグナルリセット関数

シグナルリセット関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CEvent.cpp150 行目に定義があります。

参照先 LibCommon::CSync::m_hObject.

参照元 Release(), LibCommon::CConsoleMenu::StartMenu().

150  {
151  // 処理ブロック
152  bool result = false;
153  do {
154  // イベントを非シグナル状態にする
155  if ( 0 == ::ResetEvent( m_hObject ) ) {
156  // 失敗!
157  break;
158  }
159 
160  // 成功!
161  result = true;
162  } while ( false );
163 
164  // 実行結果を返す
165  return result;
166  }
HANDLE m_hObject
オブジェクトハンドル
Definition: CSync.h:152

被呼び出し関係図:

bool LibCommon::CEvent::Pulse ( )
virtualnoexcept

シグナルパルス関数

シグナルパルス関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CEvent.cpp170 行目に定義があります。

参照先 LibCommon::CSync::m_hObject, OBJECT_NAME_EXT.

170  {
171  // 処理ブロック
172  bool result = false;
173  do {
174  // イベントをパルスする
175  if ( 0 == ::PulseEvent( m_hObject ) ) {
176  // 失敗!
177  break;
178  }
179 
180  // 成功!
181  result = true;
182  } while ( false );
183 
184  // 実行結果を返す
185  return result;
186  }
HANDLE m_hObject
オブジェクトハンドル
Definition: CSync.h:152
CEvent& LibCommon::CEvent::operator= ( CEvent const &  )
privatedelete

メンバ詳解

wchar_t const *const LibCommon::CEvent::OBJECT_NAME_EXT = L".CEvent"
staticprotected

オブジェクト名拡張子

CEvent.h155 行目に定義があります。

参照元 Create(), Open(), Pulse().


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