Solution46
CTimer.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// タイマクラスヘッダファイル
4 ///
5 /// タイマクラスヘッダファイルです。
6 ///
7 /// $Id: CTimer.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 <CSync.h>
19 
20 //=============================================================================
21 // 共通ライブラリ名前空間
22 namespace LibCommon {
23  //=========================================================================
24  /// タイマクラス
25  ///
26  /// タイマクラスです。
27  ///
28  /// @attention なし
29  ///
30  class LIB_COMMON_API CTimer: public CSync {
31  //=====================================================================
32  // 構築子と解体子
33  public:
34  //---------------------------------------------------------------------
35  /// コンストラクタ
36  ///
37  /// コンストラクタです。
38  ///
39  /// @param なし
40  /// @return なし
41  /// @attention なし
42  ///
43  explicit CTimer() noexcept;
44 
45  //---------------------------------------------------------------------
46  /// コンストラクタ
47  ///
48  /// コンストラクタです。
49  ///
50  /// @param[in] dwTime 待機時間
51  /// @return なし
52  /// @attention なし
53  ///
54  explicit CTimer( DWORD dwTime ) noexcept;
55 
56  //---------------------------------------------------------------------
57  /// デストラクタ
58  ///
59  /// デストラクタです。
60  ///
61  /// @param なし
62  /// @return なし
63  /// @attention なし
64  ///
65  virtual ~CTimer() noexcept;
66 
67  //=====================================================================
68  // インライン公開関数
69  public:
70  //---------------------------------------------------------------------
71  /// タイマセット状態取得関数
72  ///
73  /// タイマセット状態取得関数です。
74  ///
75  /// @param なし
76  /// @return タイマセット状態
77  /// - true セット状態
78  /// - false 非セット状態
79  /// @attention なし
80  ///
81  inline virtual bool IsSet() const noexcept { return m_bSet; }
82 
83  //=====================================================================
84  // 公開関数
85  public:
86  //---------------------------------------------------------------------
87  /// クローズ関数
88  ///
89  /// クローズ関数です。
90  ///
91  /// @param なし
92  /// @return なし
93  /// @attention オーバライド関数です。
94  ///
95  virtual void Close() noexcept override;
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 override;
109 
110  //---------------------------------------------------------------------
111  /// リリース関数
112  ///
113  /// リリース関数です。
114  ///
115  /// @param なし
116  /// @return 実行結果
117  /// - true 成功
118  /// - false 失敗
119  /// @attention オーバライド関数です。
120  ///
121  virtual bool Release() noexcept override;
122 
123  //---------------------------------------------------------------------
124  /// 作成関数
125  ///
126  /// 作成関数です。
127  ///
128  /// @param[in] pszObjectName オブジェクト名
129  /// @return 実行結果
130  /// - true 成功
131  /// - false 失敗
132  /// @attention なし
133  ///
134  virtual bool Create( wchar_t const* pszObjectName = nullptr ) noexcept;
135 
136  //---------------------------------------------------------------------
137  /// オープン関数
138  ///
139  /// オープン関数です。
140  ///
141  /// @param[in] pszObjectName オブジェクト名
142  /// @return 実行結果
143  /// - true 成功
144  /// - false 失敗
145  /// @attention なし
146  ///
147  virtual bool Open( wchar_t const* pszObjectName ) noexcept;
148 
149  //---------------------------------------------------------------------
150  /// タイマ設定関数
151  ///
152  /// タイマ設定関数です。
153  ///
154  /// @param[in] dwTime 待機時間(msec)
155  /// @return 実行結果
156  /// - true 成功
157  /// - false 失敗
158  /// @attention なし
159  ///
160  virtual bool Set( DWORD dwTime ) noexcept;
161 
162  //---------------------------------------------------------------------
163  /// 100ナノタイマ設定関数
164  ///
165  /// 100ナノタイマ設定関数です。
166  ///
167  /// @param[in] llWait 待機時間( 100 nsec )
168  /// @param[in] nPeriod 周期時間( 1 msec )
169  /// @param[in] pfnCallBack コールバック関数ポインタ
170  /// @param[in] lpParam コールバック関数引数ポインタ
171  /// @param[in] bResume 再開フラグ
172  /// @return 実行結果
173  /// - true 成功
174  /// - false 失敗
175  /// @attention なし
176  ///
177  virtual bool SetNano100( LONGLONG llWait, LONG nPeriod = 0, PTIMERAPCROUTINE pfnCallBack = nullptr, LPVOID lpParam = nullptr, bool bResume = false ) noexcept;
178 
179  //---------------------------------------------------------------------
180  /// タイマ解除関数
181  ///
182  /// タイマ解除関数です。
183  ///
184  /// @param なし
185  /// @return 実行結果
186  /// - true 成功
187  /// - false 失敗
188  /// @attention なし
189  ///
190  virtual bool Cancel() noexcept;
191 
192  //=====================================================================
193  // 静的限定公開文字列定数
194  protected:
195  static wchar_t const* const OBJECT_NAME_EXT; ///< オブジェクト名拡張子
196 
197  //=====================================================================
198  // 限定公開変数
199  protected:
200  bool m_bInfinite; ///< 無限待機フラグ
201  bool m_bSet; ///< タイマセットフラグ
202 
203  //=====================================================================
204  // 削除関数
205  private:
206  CTimer( CTimer const& ) = delete;
207  CTimer& operator=( CTimer const& ) = delete;
208  };
209 }
210 
211 #pragma managed( pop )
bool m_bSet
タイマセットフラグ
Definition: CTimer.h:201
同期クラスヘッダファイル
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
Definition: CTimer.h:195
同期クラス
Definition: CSync.h:30
共通ライブラリ名前空間
Definition: CArray.h:23
virtual bool IsSet() const noexcept
タイマセット状態取得関数
Definition: CTimer.h:81
タイマクラス
Definition: CTimer.h:30
#define LIB_COMMON_API
ダイナミックライブラリインポート宣言
Definition: LibCommonDef.h:44
bool m_bInfinite
無限待機フラグ
Definition: CTimer.h:200