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 CJsonValueGetJsonValue () noexcept override
 JSONクラスインスタンス取得関数 [詳解]
 
- 基底クラス LibJson::CJson に属する継承公開メンバ関数
 CJson (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJson () noexcept
 デストラクタ [詳解]
 
virtual CJsonGetJsonParent () 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 CJsonObjectGetJsonObject () noexcept
 JSONクラスインスタンス取得関数 [詳解]
 
virtual CJsonArrayGetJsonArray () noexcept
 
virtual CJsonStringGetJsonString () noexcept
 
virtual CJsonNumberGetJsonNumber () noexcept
 
virtual CJsonFixedGetJsonFixed () noexcept
 
virtual CJsonPairGetJsonPair () noexcept
 
virtual CJsonContainerGetJsonContainer () noexcept
 
virtual CJsonTokenGetJsonToken () noexcept
 
virtual CJsonGetJsonRoot () 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 CJsonValueCreateInputJson (CStream &rcStream, CJson *pcParent) noexcept
 JSONバリュー入力作成関数 [詳解]
 

非公開メンバ関数

 CJsonValue (CJsonValue const &)=delete
 
CJsonValueoperator= (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 に属する継承限定公開変数類
CJsonm_pcParent
 親JSONクラスポインタ [詳解]
 
CArray< int > * m_pcInputPointerList
 入力ストリームポインタリストポインタ [詳解]
 

詳解

JSONバリュークラス

JSONバリュークラスです。

注意
なし

CJsonValue.h30 行目に定義があります。

構築子と解体子

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

コンストラクタ

コンストラクタです。

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

CJsonValue.cpp37 行目に定義があります。

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

デストラクタ

デストラクタです。

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

CJsonValue.h54 行目に定義があります。

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.h68 行目に定義があります。

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

JSONクラス種別判定関数

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

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

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

CJsonValue.h81 行目に定義があります。

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

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

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

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

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

CJsonValue.h92 行目に定義があります。

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

JSONバリュー入力作成関数

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

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

CJsonValue.cpp46 行目に定義があります。

参照先 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

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