Solution46
CMapping.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// マッピングクラスヘッダファイル
4 ///
5 /// マッピングクラスヘッダファイルです。
6 ///
7 /// $Id: CMapping.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 <CMutex.h>
19 
20 //=============================================================================
21 // 共通ライブラリ名前空間
22 namespace LibCommon {
23  //=========================================================================
24  /// マッピングクラス
25  ///
26  /// マッピングクラスです。
27  ///
28  /// @attention なし
29  ///
30  class LIB_COMMON_API CMapping: public CMutex {
31  //=====================================================================
32  // 構築子と解体子
33  public:
34  //---------------------------------------------------------------------
35  /// コンストラクタ
36  ///
37  /// コンストラクタです。
38  ///
39  /// @param なし
40  /// @return なし
41  /// @attention なし
42  ///
43  explicit CMapping() noexcept;
44 
45  //---------------------------------------------------------------------
46  /// デストラクタ
47  ///
48  /// デストラクタです。
49  ///
50  /// @param なし
51  /// @return なし
52  /// @attention なし
53  ///
54  virtual ~CMapping() 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 override { return m_hMapping; }
69 
70  //---------------------------------------------------------------------
71  /// ビューポインタ取得関数
72  ///
73  /// ビューポインタ取得関数です。
74  ///
75  /// @param なし
76  /// @return ビューポインタ
77  /// @attention なし
78  ///
79  inline virtual LPVOID GetView() const noexcept { return m_pView; }
80 
81  //=====================================================================
82  // 公開関数
83  public:
84  //---------------------------------------------------------------------
85  /// クローズ関数
86  ///
87  /// クローズ関数です。
88  ///
89  /// @param なし
90  /// @return なし
91  /// @attention オーバーライド関数です。
92  ///
93  virtual void Close() noexcept override;
94 
95  //---------------------------------------------------------------------
96  /// 作成関数
97  ///
98  /// 作成関数です。
99  ///
100  /// @param[in] dwSize 共有メモリサイズ
101  /// @param[in] pszObjectName オブジェクト名
102  /// @return 実行結果
103  /// - true 成功
104  /// - false 失敗
105  /// @attention なし
106  ///
107  virtual bool Create( DWORD dwSize, wchar_t const* pszObjectName = nullptr ) noexcept;
108 
109  //---------------------------------------------------------------------
110  /// オープン関数
111  ///
112  /// オープン関数です。
113  ///
114  /// @param[in] pszObjectName オブジェクト名
115  /// @return 実行結果
116  /// - true 成功
117  /// - false 失敗
118  /// @attention オーバーライド関数です。
119  ///
120  virtual bool Open( wchar_t const* pszObjectName ) noexcept override;
121 
122  //=====================================================================
123  // 静的限定公開文字列定数
124  protected:
125  static wchar_t const* const OBJECT_NAME_EXT; ///< オブジェクト名拡張子
126 
127  //=====================================================================
128  // 限定公開変数
129  protected:
130  HANDLE m_hMapping; ///< マッピングハンドル
131  LPVOID m_pView; ///< ビューポインタ
132 
133  //=====================================================================
134  // 削除関数
135  private:
136  CMapping( CMapping const& ) = delete;
137  CMapping& operator=( CMapping const& ) = delete;
138  };
139 }
140 
141 #pragma managed( pop )
LPVOID m_pView
ビューポインタ
Definition: CMapping.h:131
virtual LPVOID GetView() const noexcept
ビューポインタ取得関数
Definition: CMapping.h:79
共通ライブラリ名前空間
Definition: CArray.h:23
ミューテックスクラス
Definition: CMutex.h:30
HANDLE m_hMapping
マッピングハンドル
Definition: CMapping.h:130
virtual HANDLE GetHandle() const noexcept override
マッピングハンドル取得関数
Definition: CMapping.h:68
ミューテックスクラスヘッダファイル
マッピングクラス
Definition: CMapping.h:30
#define LIB_COMMON_API
ダイナミックライブラリインポート宣言
Definition: LibCommonDef.h:44
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子
Definition: CMapping.h:125