Solution46
CStream.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// ストリームクラスヘッダファイル
4 ///
5 /// ストリームクラスヘッダファイルです。
6 ///
7 /// $Id: CStream.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 <CStreamOut.h>
19 #include <CArray.h>
20 
21 //=============================================================================
22 // 共通ライブラリ名前空間
23 namespace LibCommon {
24  //=========================================================================
25  /// ストリームクラス
26  ///
27  /// ストリームクラスです。
28  ///
29  /// @attention 抽象クラスです。
30  ///
31  class LIB_COMMON_API CStream abstract: public CStreamOut {
32  //=====================================================================
33  // 構築子と解体子
34  protected:
35  //---------------------------------------------------------------------
36  /// コンストラクタ
37  ///
38  /// コンストラクタです。
39  ///
40  /// @param なし
41  /// @return なし
42  /// @attention なし
43  ///
44  explicit CStream() noexcept;
45 
46  //---------------------------------------------------------------------
47  /// デストラクタ
48  ///
49  /// デストラクタです。
50  ///
51  /// @param なし
52  /// @return なし
53  /// @attention なし
54  ///
55  virtual ~CStream() noexcept {}
56 
57  //=====================================================================
58  // 公開関数
59  public:
60  //---------------------------------------------------------------------
61  /// 1文字入力関数
62  ///
63  /// 1文字入力関数です。
64  ///
65  /// @param[out] rCh 文字コード参照
66  /// @return 実行結果
67  /// - true 成功
68  /// - false 失敗
69  /// @attention 純粋仮想関数です。
70  ///
71  virtual bool InputChar( wchar_t& rCh ) noexcept = 0;
72 
73  //---------------------------------------------------------------------
74  /// 文字列入力関数
75  ///
76  /// 文字列入力関数です。
77  ///
78  /// @param[in] pszBuffer 文字列バッファポインタ
79  /// @param[in] nSize バッファサイズ
80  /// @return 入力文字数
81  /// @attention なし
82  ///
83  virtual int InputString( wchar_t* pszBuffer, int nSize ) noexcept;
84 
85  //---------------------------------------------------------------------
86  /// ストリームサイズ取得関数
87  ///
88  /// ストリームサイズ取得関数です。
89  ///
90  /// @param なし
91  /// @return ストリームサイズ
92  /// @attention なし
93  ///
94  virtual int GetStreamSize() const noexcept { return 0; }
95 
96  //---------------------------------------------------------------------
97  /// ストリームポインタ取得関数
98  ///
99  /// ストリームポインタ取得関数です。
100  ///
101  /// @param なし
102  /// @return ストリームポインタ
103  /// @attention なし
104  ///
105  virtual int GetStreamPoint() const noexcept { return 0; }
106 
107  //---------------------------------------------------------------------
108  /// ストリームポインタ設定関数
109  ///
110  /// ストリームポインタ設定関数です。
111  ///
112  /// @param[in] nPoint ストリームポインタ
113  /// @return 実行結果
114  /// - true 成功
115  /// - false 失敗
116  /// @attention なし
117  ///
118  virtual bool SetStreamPoint( int nPoint ) noexcept { return false; }
119 
120  //---------------------------------------------------------------------
121  /// ストリーム終端設定関数
122  ///
123  /// ストリーム終端設定関数です。
124  ///
125  /// @param なし
126  /// @return 実行結果
127  /// - true 成功
128  /// - false 失敗
129  /// @attention なし
130  ///
131  virtual bool SetStreamEnd() noexcept { return false; }
132 
133  //---------------------------------------------------------------------
134  /// ストリーム終端状態取得関数
135  ///
136  /// ストリーム終端状態取得関数です。
137  ///
138  /// @param なし
139  /// @return 実行結果
140  /// - true 成功
141  /// - false 失敗
142  /// @attention なし
143  ///
144  virtual bool IsStreamEnd() const noexcept;
145 
146  //---------------------------------------------------------------------
147  /// 空白スキップ関数
148  ///
149  /// 空白スキップ関数です。
150  ///
151  /// @param なし
152  /// @return 実行結果
153  /// - true 成功
154  /// - false 失敗
155  /// @attention なし
156  ///
157  virtual bool SkipSpace() noexcept;
158 
159  //---------------------------------------------------------------------
160  /// 1文字スキップ関数
161  ///
162  /// 1文字スキップ関数です。
163  ///
164  /// @param[in] ch スキップ文字コード
165  /// @param[in] bIgnore 大小文字無視フラグ
166  /// @return 実行結果
167  /// - true 成功
168  /// - false 失敗
169  /// @attention なし
170  ///
171  virtual bool SkipChar( wchar_t ch, bool bIgnore = false ) noexcept;
172 
173  //---------------------------------------------------------------------
174  /// 1文字スキップ関数
175  ///
176  /// 1文字スキップ関数です。
177  ///
178  /// @param[in] pszString スキップ文字列ポインタ
179  /// @param[in] bIgnore 最小文字無視フラグ
180  /// @return 実行結果
181  /// - true 成功
182  /// - false 失敗
183  /// @attention なし
184  ///
185  virtual bool SkipChar( wchar_t const* pszString, bool bIgnore = false ) noexcept;
186 
187  //---------------------------------------------------------------------
188  /// ストリームポインタプッシュ関数
189  ///
190  /// ストリームポインタプッシュ関数です。
191  ///
192  /// @param[in] pcPointerList ストリームポインタリストポインタ
193  /// @return 実行結果
194  /// - true 成功
195  /// - false 失敗
196  /// @attention なし
197  ///
198  virtual bool PushStreamPoint( CArray< int >* pcPointerList ) noexcept;
199 
200  //---------------------------------------------------------------------
201  /// ストリームポインタポップ数
202  ///
203  /// ストリームポインタポップ数です。
204  ///
205  /// @param[in] pcPointerList ストリームポインタリストポインタ
206  /// @param[in] bResume ポインタ復元フラグ
207  /// @return 実行結果
208  /// - true 成功
209  /// - false 失敗
210  /// @attention なし
211  ///
212  virtual bool PopStreamPoint( CArray< int >* pcPointerList, bool bResume ) noexcept;
213 
214  //=====================================================================
215  // 削除関数
216  private:
217  CStream( CStream const& ) = delete;
218  CStream& operator=( CStream const& ) = delete;
219  };
220 }
221 
222 #pragma managed( pop )
ストリーム出力クラスヘッダファイル
配列クラスヘッダファイル
共通ライブラリ名前空間
Definition: CArray.h:23
virtual int GetStreamPoint() const noexcept
ストリームポインタ取得関数
Definition: CStream.h:105
ストリームクラス
Definition: CStream.h:31
ストリーム出力クラス
Definition: CStreamOut.h:30
virtual bool SetStreamPoint(int nPoint) noexcept
ストリームポインタ設定関数
Definition: CStream.h:118
virtual bool SetStreamEnd() noexcept
ストリーム終端設定関数
Definition: CStream.h:131
virtual int GetStreamSize() const noexcept
ストリームサイズ取得関数
Definition: CStream.h:94
#define LIB_COMMON_API
ダイナミックライブラリインポート宣言
Definition: LibCommonDef.h:44
virtual ~CStream() noexcept
デストラクタ
Definition: CStream.h:55