Solution46
CJsonValue.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// JSONバリュークラスヘッダファイル
4 ///
5 /// JSONバリュークラスヘッダファイルです。
6 ///
7 /// $Id: CJsonValue.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 <CJson.h>
19 
20 //=============================================================================
21 // JSONライブラリ名前空間
22 namespace LibJson {
23  //=========================================================================
24  /// JSONバリュークラス
25  ///
26  /// JSONバリュークラスです。
27  ///
28  /// @attention なし
29  ///
30  class LIB_JSON_API CJsonValue: public CJson {
31  //=====================================================================
32  // 構築子と解体子
33  public:
34  //---------------------------------------------------------------------
35  /// コンストラクタ
36  ///
37  /// コンストラクタです。
38  ///
39  /// @param[in] pcParent 親JSONクラスポインタ
40  /// @return なし
41  /// @attention なし
42  ///
43  explicit CJsonValue( CJson* pcParent ) noexcept;
44 
45  //---------------------------------------------------------------------
46  /// デストラクタ
47  ///
48  /// デストラクタです。
49  ///
50  /// @param なし
51  /// @return なし
52  /// @attention なし
53  ///
54  virtual ~CJsonValue() noexcept {}
55 
56  //=====================================================================
57  // インライン公開関数
58  public:
59  //---------------------------------------------------------------------
60  /// JSONクラス種別取得関数
61  ///
62  /// JSONクラス種別取得関数です。
63  ///
64  /// @param なし
65  /// @return JSONクラス種別
66  /// @attention オーバライド関数です。
67  ///
68  inline virtual EJsonClass GetJsonClass() noexcept override { return EJsonClass::JsonValue; }
69 
70  //---------------------------------------------------------------------
71  /// JSONクラス種別判定関数
72  ///
73  /// JSONクラス種別判定関数です。
74  ///
75  /// @param なし
76  /// @return 実行結果
77  /// - true 成功
78  /// - false 失敗
79  /// @attention オーバライド関数です。
80  ///
81  inline virtual bool IsJsonValue() noexcept override { return true; }
82 
83  //---------------------------------------------------------------------
84  /// JSONクラスインスタンス取得関数
85  ///
86  /// JSONクラスインスタンス取得関数です。
87  ///
88  /// @param なし
89  /// @return JSONクラスインスタンスポインタ
90  /// @attention オーバライド関数です。
91  ///
92  inline virtual CJsonValue* GetJsonValue() noexcept override { return this; }
93 
94  //=====================================================================
95  // 静的公開関数
96  public:
97  //---------------------------------------------------------------------
98  /// JSONバリュー入力作成関数
99  ///
100  /// JSONバリュー入力作成関数です。
101  ///
102  /// @param[in] rcStream 入力ストリーム参照
103  /// @param[in] pcParent 親JSONクラスポインタ
104  /// @return JSONバリューポインタ
105  /// @attention なし
106  ///
107  static CJsonValue* CreateInputJson( CStream& rcStream, CJson* pcParent ) noexcept;
108 
109  //=====================================================================
110  // 削除関数
111  private:
112  CJsonValue( CJsonValue const& ) = delete;
113  CJsonValue& operator=( CJsonValue const& ) = delete;
114  };
115 }
116 
117 #pragma managed( pop )
virtual CJsonValue * GetJsonValue() noexcept override
JSONクラスインスタンス取得関数
Definition: CJsonValue.h:92
virtual bool IsJsonValue() noexcept override
JSONクラス種別判定関数
Definition: CJsonValue.h:81
EJsonClass
JSONクラス種別列挙体
Definition: CJson.h:55
JSONライブラリ名前空間
Definition: CJson.h:24
JSONバリュークラス
Definition: CJsonValue.h:30
ストリームクラス
Definition: CStream.h:31
JSONクラス
Definition: CJson.h:44
virtual EJsonClass GetJsonClass() noexcept override
JSONクラス種別取得関数
Definition: CJsonValue.h:68
#define LIB_JSON_API
ダイナミックライブラリインポート宣言
Definition: LibJsonDef.h:29
JSONクラスヘッダファイル
virtual ~CJsonValue() noexcept
デストラクタ
Definition: CJsonValue.h:54