Solution46
CSync.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// 同期クラスヘッダファイル
4 ///
5 /// 同期クラスヘッダファイルです。
6 ///
7 /// $Id: CSync.h 245 2019-03-20 15:03:41Z admin $
8 /// $Date: 2019-03-21 00:03:41 +0900 (2019/03/21 (木)) $
9 /// $Author: admin $
10 ///
11 /// @attention なし
12 
13 #pragma once
14 #pragma managed( push, off )
15 
16 //=============================================================================
17 // インクルードファイル
18 #include <LibCommonDef.h>
19 
20 //=============================================================================
21 // 共通ライブラリ名前空間
22 namespace LibCommon {
23  //=========================================================================
24  /// 同期クラス
25  ///
26  /// 同期クラスです。
27  ///
28  /// @attention 抽象クラスです。
29  ///
30  class LIB_COMMON_API CSync abstract {
31  //=====================================================================
32  // 構築子と解体子
33  public:
34  //---------------------------------------------------------------------
35  /// コンストラクタ
36  ///
37  /// コンストラクタです。
38  ///
39  /// @param なし
40  /// @return なし
41  /// @attention なし
42  ///
43  explicit CSync() noexcept;
44 
45  //---------------------------------------------------------------------
46  /// デストラクタ
47  ///
48  /// デストラクタです。
49  ///
50  /// @param なし
51  /// @return なし
52  /// @attention なし
53  ///
54  virtual ~CSync() noexcept;
55 
56  //=====================================================================
57  // インライン公開関数
58  public:
59  //---------------------------------------------------------------------
60  /// オブジェクトハンドル取得関数
61  ///
62  /// オブジェクトハンドル取得関数です。
63  ///
64  /// @param なし
65  /// @return オブジェクトハンドル
66  /// @attention なし
67  ///
68  inline virtual HANDLE GetHandle() const noexcept { return m_hObject; }
69 
70  //---------------------------------------------------------------------
71  /// 新規作成状態取得関数
72  ///
73  /// 新規作成状態取得関数です。
74  ///
75  /// @param なし
76  /// @return 新規作成フラグ
77  /// - true 新規作成
78  /// - false 非新規作成
79  /// @attention なし
80  ///
81  inline virtual bool IsCreate() const noexcept { return m_bIsCreate; }
82 
83  //=====================================================================
84  // 公開関数
85  public:
86  //---------------------------------------------------------------------
87  /// クローズ関数
88  ///
89  /// クローズ関数です。
90  ///
91  /// @param なし
92  /// @return なし
93  /// @attention なし
94  ///
95  virtual void Close() noexcept;
96 
97  //---------------------------------------------------------------------
98  /// ウェイト関数
99  ///
100  /// ウェイト関数です。
101  ///
102  /// @param[in] dwTime ウェイト時間
103  /// @return 実行結果
104  /// - true 成功
105  /// - false 失敗
106  /// @attention なし
107  ///
108  virtual bool Wait( DWORD dwTime = INFINITE ) noexcept;
109 
110  //---------------------------------------------------------------------
111  /// リリース関数
112  ///
113  /// リリース関数です。
114  ///
115  /// @param なし
116  /// @return 実行結果
117  /// - true 成功
118  /// - false 失敗
119  /// @attention 純粋仮想関数です。
120  ///
121  virtual bool Release() noexcept = 0;
122 
123  //---------------------------------------------------------------------
124  /// ロック関数
125  ///
126  /// ロック関数です。
127  ///
128  /// @param[in] dwTime 待機時間
129  /// @return 実行結果
130  /// - true 成功
131  /// - false 失敗
132  /// @attention なし
133  ///
134  virtual bool Lock( DWORD dwTime = INFINITE ) noexcept;
135 
136  //---------------------------------------------------------------------
137  /// ロック解除関数
138  ///
139  /// ロック解除関数です。
140  ///
141  /// @param なし
142  /// @return 実行結果
143  /// - true 成功
144  /// - false 失敗
145  /// @attention なし
146  ///
147  virtual bool Unlock() noexcept;
148 
149  //=====================================================================
150  // 限定公開変数
151  protected:
152  HANDLE m_hObject; ///< オブジェクトハンドル
153  bool m_bIsCreate; ///< 新規作成フラグ
154 
155  //=====================================================================
156  // 削除関数
157  private:
158  CSync( CSync const& ) = delete;
159  CSync& operator=( CSync const& ) = delete;
160  };
161 }
162 
163 #pragma managed( pop )
virtual HANDLE GetHandle() const noexcept
オブジェクトハンドル取得関数
Definition: CSync.h:68
同期クラス
Definition: CSync.h:30
bool m_bIsCreate
新規作成フラグ
Definition: CSync.h:153
virtual bool IsCreate() const noexcept
新規作成状態取得関数
Definition: CSync.h:81
共通ライブラリ定義ヘッダファイル
共通ライブラリ名前空間
Definition: CArray.h:23
HANDLE m_hObject
オブジェクトハンドル
Definition: CSync.h:152
#define LIB_COMMON_API
ダイナミックライブラリインポート宣言
Definition: LibCommonDef.h:44