Solution46
CJsonArray.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// JSON配列クラスヘッダファイル
4 ///
5 /// JSON配列クラスヘッダファイルです。
6 ///
7 /// $Id: CJsonArray.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 <CJsonContainer.h>
19 #include <CJsonValue.h>
20 
21 //=============================================================================
22 // JSONライブラリ名前空間
23 namespace LibJson {
24  //=========================================================================
25  /// JSON配列クラス
26  ///
27  /// JSON配列クラスです。
28  ///
29  /// @attention なし
30  ///
32  //=====================================================================
33  // 構築子と解体子
34  public:
35  //---------------------------------------------------------------------
36  /// コンストラクタ
37  ///
38  /// コンストラクタです。
39  ///
40  /// @param[in] pcParent 親JSONクラスポインタ
41  /// @return なし
42  /// @attention なし
43  ///
44  explicit CJsonArray( CJson* pcParent ) noexcept;
45 
46  //---------------------------------------------------------------------
47  /// デストラクタ
48  ///
49  /// デストラクタです。
50  ///
51  /// @param なし
52  /// @return なし
53  /// @attention なし
54  ///
55  virtual ~CJsonArray() noexcept {}
56 
57  //=====================================================================
58  // インライン公開関数
59  public:
60  //---------------------------------------------------------------------
61  /// JSONクラス種別取得関数
62  ///
63  /// JSONクラス種別取得関数です。
64  ///
65  /// @param なし
66  /// @return JSONクラス種別
67  /// @attention オーバライド関数です。
68  ///
69  inline virtual EJsonClass GetJsonClass() noexcept override { return EJsonClass::JsonArray; }
70 
71  //---------------------------------------------------------------------
72  /// JSONクラス種別判定関数
73  ///
74  /// JSONクラス種別判定関数です。
75  ///
76  /// @param なし
77  /// @return 実行結果
78  /// - true 成功
79  /// - false 失敗
80  /// @attention オーバライド関数です。
81  ///
82  inline virtual bool IsJsonArray() noexcept override { return true; }
83 
84  //---------------------------------------------------------------------
85  /// JSONクラスインスタンス取得関数
86  ///
87  /// JSONクラスインスタンス取得関数です。
88  ///
89  /// @param なし
90  /// @return JSONクラスインスタンスポインタ
91  /// @attention オーバライド関数です。
92  ///
93  inline virtual CJsonArray* GetJsonArray() noexcept override { return this; }
94 
95  //---------------------------------------------------------------------
96  /// オープン文字取得関数
97  ///
98  /// オープン文字取得関数です。
99  ///
100  /// @param なし
101  /// @return 文字コード
102  /// @attention オーバライド関数です。
103  ///
104  inline virtual wchar_t GetOpenChar() noexcept override { return L'['; }
105 
106  //---------------------------------------------------------------------
107  /// クローズ文字取得関数
108  ///
109  /// クローズ文字取得関数です。
110  ///
111  /// @param なし
112  /// @return 文字コード
113  /// @attention オーバライド関数です。
114  ///
115  inline virtual wchar_t GetCloseChar() noexcept override { return L']'; }
116 
117  //---------------------------------------------------------------------
118  /// JSONエレメント入力作成関数
119  ///
120  /// JSONエレメント入力作成関数です。
121  ///
122  /// @param[in] rcStream 入力ストリーム参照
123  /// @param[in] pcParent 親JSONクラスポインタ
124  /// @return JSON派生クラスポインタ
125  /// @attention オーバライド関数です。
126  ///
127  inline virtual CJson* CreateInputJsonElement( CStream& rcStream, CJson* pcParent ) noexcept override { return CJsonValue::CreateInputJson( rcStream, pcParent ); }
128 
129  //=====================================================================
130  // 静的公開関数
131  public:
132  //---------------------------------------------------------------------
133  /// JSON配列入力作成関数
134  ///
135  /// JSON配列入力作成関数です。
136  ///
137  /// @param[in] rcStream 入力ストリーム参照
138  /// @param[in] pcParent 親JSONクラスポインタ
139  /// @return JSON配列ポインタ
140  /// @attention なし
141  ///
142  static CJsonArray* CreateInputJson( CStream& rcStream, CJson* pcParent ) noexcept;
143 
144  //=====================================================================
145  // 削除関数
146  private:
147  CJsonArray( CJsonArray const& ) = delete;
148  CJsonArray& operator=( CJsonArray const& ) = delete;
149  };
150 }
151 
152 #pragma managed( pop )
virtual bool IsJsonArray() noexcept override
JSONクラス種別判定関数
Definition: CJsonArray.h:82
EJsonClass
JSONクラス種別列挙体
Definition: CJson.h:55
JSONコンテナクラスヘッダファイル
JSONライブラリ名前空間
Definition: CJson.h:24
JSON配列クラス
Definition: CJsonArray.h:31
virtual CJson * CreateInputJsonElement(CStream &rcStream, CJson *pcParent) noexcept override
JSONエレメント入力作成関数
Definition: CJsonArray.h:127
virtual ~CJsonArray() noexcept
デストラクタ
Definition: CJsonArray.h:55
virtual CJsonArray * GetJsonArray() noexcept override
JSONクラスインスタンス取得関数
Definition: CJsonArray.h:93
JSONコンテナクラス
ストリームクラス
Definition: CStream.h:31
JSONクラス
Definition: CJson.h:44
virtual wchar_t GetOpenChar() noexcept override
オープン文字取得関数
Definition: CJsonArray.h:104
JSONバリュークラスヘッダファイル
virtual wchar_t GetCloseChar() noexcept override
クローズ文字取得関数
Definition: CJsonArray.h:115
#define LIB_JSON_API
ダイナミックライブラリインポート宣言
Definition: LibJsonDef.h:29
static CJsonValue * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSONバリュー入力作成関数
Definition: CJsonValue.cpp:46
virtual EJsonClass GetJsonClass() noexcept override
JSONクラス種別取得関数
Definition: CJsonArray.h:69