Solution46
LibJson::CJsonValue クラス

JSONバリュークラス [詳解]

#include "CJsonValue.h"

LibJson::CJsonValue の継承関係図
Inheritance graph
LibJson::CJsonValue 連携図
Collaboration graph

公開メンバ関数

 CJsonValue (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJsonValue () noexcept
 デストラクタ [詳解]
 
virtual EJsonClass GetJsonClass () noexcept override
 JSONクラス種別取得関数 [詳解]
 
virtual bool IsJsonValue () noexcept override
 JSONクラス種別判定関数 [詳解]
 
virtual CJsonValue * GetJsonValue () noexcept override
 JSONクラスインスタンス取得関数 [詳解]
 
- 基底クラス LibJson::CJson に属する継承公開メンバ関数
 CJson (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJson () noexcept
 デストラクタ [詳解]
 
virtual CJson * GetJsonParent () noexcept
 親JSONクラス取得関数 [詳解]
 
virtual void SetJsonParent (CJson *pcParent) noexcept
 親JSONクラス設定関数 [詳解]
 
virtual bool IsJsonObject () noexcept
 JSONクラス種別判定関数 [詳解]
 
virtual bool IsJsonArray () noexcept
 
virtual bool IsJsonString () noexcept
 
virtual bool IsJsonNumber () noexcept
 
virtual bool IsJsonFixed () noexcept
 
virtual bool IsJsonPair () noexcept
 
virtual bool IsJsonContainer () noexcept
 
virtual bool IsJsonToken () noexcept
 
virtual CJsonObject * GetJsonObject () noexcept
 JSONクラスインスタンス取得関数 [詳解]
 
virtual CJsonArray * GetJsonArray () noexcept
 
virtual CJsonString * GetJsonString () noexcept
 
virtual CJsonNumber * GetJsonNumber () noexcept
 
virtual CJsonFixed * GetJsonFixed () noexcept
 
virtual CJsonPair * GetJsonPair () noexcept
 
virtual CJsonContainer * GetJsonContainer () noexcept
 
virtual CJsonToken * GetJsonToken () noexcept
 
virtual CJson * GetJsonRoot () noexcept
 ルートJSONクラス取得関数 [詳解]
 
virtual void ClearJson () noexcept
 JSONクラスクリア関数 [詳解]
 
virtual bool CompactJson () noexcept
 JSONクラスコンパクト化関数 [詳解]
 
virtual bool InputJson (CStream &rcStream) noexcept
 JSONクラス入力関数 [詳解]
 
virtual bool OutputJson (CStreamOut &rcStreamOut) noexcept
 JSONクラス出力関数 [詳解]
 

静的公開メンバ関数

static CJsonValue * CreateInputJson (CStream &rcStream, CJson *pcParent) noexcept
 JSONバリュー入力作成関数 [詳解]
 

非公開メンバ関数

 CJsonValue (CJsonValue const &)=delete
 
CJsonValue & operator= (CJsonValue const &)=delete
 

その他の継承メンバ

- 基底クラス LibJson::CJson に属する継承公開型
enum  EJsonClass {
  EJsonClass::Invalid, EJsonClass::JsonObject, EJsonClass::JsonArray, EJsonClass::JsonString,
  EJsonClass::JsonNumber, EJsonClass::JsonFixed, EJsonClass::JsonPair, EJsonClass::JsonValue,
  EJsonClass::JsonContainer, EJsonClass::JsonToken, EJsonClass::Size
}
 JSONクラス種別列挙体 [詳解]
 
- 基底クラス LibJson::CJson に属する継承限定公開変数類
CJson * m_pcParent
 親JSONクラスポインタ [詳解]
 
CArray< int > * m_pcInputPointerList
 入力ストリームポインタリストポインタ [詳解]
 

詳解

JSONバリュークラス

JSONバリュークラスです。

注意
なし

CJsonValue.h の 30 行目に定義があります。

構築子と解体子

LibJson::CJsonValue::CJsonValue ( CJson *  pcParent)
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]pcParent親JSONクラスポインタ
戻り値
なし
注意
なし

CJsonValue.cpp の 37 行目に定義があります。

39  : CJson( pcParent )
40  {}
CJson(CJson *pcParent) noexcept
コンストラクタ
Definition: CJson.cpp:33
virtual LibJson::CJsonValue::~CJsonValue ( )
inlinevirtualnoexcept

デストラクタ

デストラクタです。

引数
なし
戻り値
なし
注意
なし

CJsonValue.h の 54 行目に定義があります。

54 {}
LibJson::CJsonValue::CJsonValue ( CJsonValue const &  )
privatedelete

関数詳解

virtual EJsonClass LibJson::CJsonValue::GetJsonClass ( )
inlineoverridevirtualnoexcept

JSONクラス種別取得関数

JSONクラス種別取得関数です。

引数
なし
戻り値
JSONクラス種別
注意
オーバライド関数です。

LibJson::CJsonを再実装しています。

LibJson::CJsonToken, LibJson::CJsonArray, LibJson::CJsonContainer, LibJson::CJsonFixed, LibJson::CJsonNumber, LibJson::CJsonObject, LibJson::CJsonStringで再実装されています。

CJsonValue.h の 68 行目に定義があります。

68 { return EJsonClass::JsonValue; }
JSONバリュークラス
virtual bool LibJson::CJsonValue::IsJsonValue ( )
inlineoverridevirtualnoexcept

JSONクラス種別判定関数

JSONクラス種別判定関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバライド関数です。

LibJson::CJsonを再実装しています。

CJsonValue.h の 81 行目に定義があります。

81 { return true; }
virtual CJsonValue* LibJson::CJsonValue::GetJsonValue ( )
inlineoverridevirtualnoexcept

JSONクラスインスタンス取得関数

JSONクラスインスタンス取得関数です。

引数
なし
戻り値
JSONクラスインスタンスポインタ
注意
オーバライド関数です。

LibJson::CJsonを再実装しています。

CJsonValue.h の 92 行目に定義があります。

92 { return this; }
CJsonValue * LibJson::CJsonValue::CreateInputJson ( CStream &  rcStream,
CJson *  pcParent 
)
staticnoexcept

JSONバリュー入力作成関数

JSONバリュー入力作成関数です。

引数
[in]rcStream入力ストリーム参照
[in]pcParent親JSONクラスポインタ
戻り値
JSONバリューポインタ
注意
なし

CJsonValue.cpp の 46 行目に定義があります。

参照先 LibJson::CJsonNumber::CreateInputJson(), LibJson::CJsonFixed::CreateInputJson(), LibJson::CJsonString::CreateInputJson(), LibJson::CJsonArray::CreateInputJson(), LibJson::CJsonObject::CreateInputJson().

参照元 LibJson::CJsonArray::CreateInputJsonElement(), LibJson::CJsonDocument::InputDocument(), LibJson::CJsonPair::InputJson(), LibJson::CJsonDocument::SetJsonSetValueByStream().

46  {
47  // 処理ブロック
48  CJsonValue* result = nullptr;
49  do {
50  // JSONオブジェクトを入力作成する
51  CJsonValue* pcJsonValue = CJsonObject::CreateInputJson( rcStream, pcParent );
52  if ( nullptr == pcJsonValue ) {
53  // JSON配列を入力作成する
54  pcJsonValue = CJsonArray::CreateInputJson( rcStream, pcParent );
55  if ( nullptr == pcJsonValue ) {
56  // JSON文字列を入力作成する
57  pcJsonValue = CJsonString::CreateInputJson( rcStream, pcParent );
58  if ( nullptr == pcJsonValue ) {
59  // JSON数値を入力作成する
60  pcJsonValue = CJsonNumber::CreateInputJson( rcStream, pcParent );
61  if ( nullptr == pcJsonValue ) {
62  // JSON固定値を入力作成する
63  pcJsonValue = CJsonFixed::CreateInputJson( rcStream, pcParent );
64  if ( nullptr == pcJsonValue ) {
65  // 失敗!
66  break;
67  }
68  }
69  }
70  }
71  }
72 
73  // 成功!
74  result = pcJsonValue;
75  } while ( false );
76 
77  // 実行結果を返す
78  return result;
79  }
static CJsonArray * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSON配列入力作成関数
Definition: CJsonArray.cpp:41
CJsonValue(CJson *pcParent) noexcept
コンストラクタ
Definition: CJsonValue.cpp:37
static CJsonObject * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSONオブジェクト入力作成関数
static CJsonFixed * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSON固定値入力作成関数
Definition: CJsonFixed.cpp:88
static CJsonString * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSON文字列入力作成関数
static CJsonNumber * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSON数値入力作成関数
Definition: CJsonNumber.cpp:88

呼び出し関係図:

被呼び出し関係図:

CJsonValue& LibJson::CJsonValue::operator= ( CJsonValue const &  )
privatedelete

このクラス詳解は次のファイルから抽出されました: