Solution46
LibJson::CJson クラス

JSONクラス [詳解]

#include "CJson.h"

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

公開型

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クラス種別列挙体 [詳解]
 

公開メンバ関数

 CJson (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJson () noexcept
 デストラクタ [詳解]
 
virtual CJson * GetJsonParent () noexcept
 親JSONクラス取得関数 [詳解]
 
virtual void SetJsonParent (CJson *pcParent) noexcept
 親JSONクラス設定関数 [詳解]
 
virtual EJsonClass GetJsonClass () 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 IsJsonValue () 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 CJsonValue * GetJsonValue () 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クラス出力関数 [詳解]
 

限定公開変数類

CJson * m_pcParent
 親JSONクラスポインタ [詳解]
 
CArray< int > * m_pcInputPointerList
 入力ストリームポインタリストポインタ [詳解]
 

非公開メンバ関数

 CJson (CJson const &)=delete
 
CJson & operator= (CJson const &)=delete
 

詳解

JSONクラス

JSONクラスです。

注意
なし

CJson.h の 44 行目に定義があります。

列挙型メンバ詳解

JSONクラス種別列挙体

JSONクラス種別列挙体です。

注意
なし
列挙値
Invalid 

無効値

JsonObject 

JSONオブジェクトクラス

JsonArray 

JSON配列クラス

JsonString 

JSON文字列クラス

JsonNumber 

JSON数値クラス

JsonFixed 

JSON固定値クラス

JsonPair 

JSONペアクラス

JsonValue 

JSONバリュークラス

JsonContainer 

JSONコンテナクラス

JsonToken 

JSONトークンクラス

Size 

列挙体サイズ

CJson.h の 55 行目に定義があります。

55  {
56  Invalid, ///< 無効値
57  JsonObject, ///< JSONオブジェクトクラス
58  JsonArray, ///< JSON配列クラス
59  JsonString, ///< JSON文字列クラス
60  JsonNumber, ///< JSON数値クラス
61  JsonFixed, ///< JSON固定値クラス
62  JsonPair, ///< JSONペアクラス
63  JsonValue, ///< JSONバリュークラス
64  JsonContainer, ///< JSONコンテナクラス
65  JsonToken, ///< JSONトークンクラス
66  Size ///< 列挙体サイズ
67  };

構築子と解体子

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

コンストラクタ

コンストラクタです。

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

CJson.cpp の 33 行目に定義があります。

参照先 NotifyFatalError.

35  : m_pcParent( pcParent )
36  , m_pcInputPointerList( nullptr )
37  {
38  // 処理ブロック
39  do {
40  // 入力ストリームポインタリストを作成する
42  if ( nullptr == m_pcInputPointerList ) {
43  // 致命的エラー!
45  break;
46  }
47  } while ( false );
48  }
#define NotifyFatalError()
致命的エラー発生通知マクロ
Definition: LibUtility.h:22
CArray< int > * m_pcInputPointerList
入力ストリームポインタリストポインタ
Definition: CJson.h:238
CJson * m_pcParent
親JSONクラスポインタ
Definition: CJson.h:237
LibJson::CJson::~CJson ( )
virtualnoexcept

デストラクタ

デストラクタです。

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

CJson.cpp の 52 行目に定義があります。

参照先 m_pcInputPointerList.

52  {
53  // 入力ストリームポインタリストを削除する
54  delete m_pcInputPointerList;
55  }
CArray< int > * m_pcInputPointerList
入力ストリームポインタリストポインタ
Definition: CJson.h:238
LibJson::CJson::CJson ( CJson const &  )
privatedelete

関数詳解

virtual CJson* LibJson::CJson::GetJsonParent ( )
inlinevirtualnoexcept

親JSONクラス取得関数

親JSONクラス取得関数です。

引数
なし
戻り値
JSONクラスポインタ
注意
なし

CJson.h の 106 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonDocument::DeleteJson(), LibJson::CJsonDocument::GetJsonPath(), GetJsonRoot(), LibJson::CJsonDocument::SetJsonSetValueByStream().

106 { return m_pcParent; }
CJson * m_pcParent
親JSONクラスポインタ
Definition: CJson.h:237

被呼び出し関係図:

virtual void LibJson::CJson::SetJsonParent ( CJson *  pcParent)
inlinevirtualnoexcept

親JSONクラス設定関数

親JSONクラス設定関数です。

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

CJson.h の 117 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath().

117 { m_pcParent = pcParent; }
CJson * m_pcParent
親JSONクラスポインタ
Definition: CJson.h:237

被呼び出し関係図:

virtual EJsonClass LibJson::CJson::GetJsonClass ( )
inlinevirtualnoexcept

JSONクラス種別取得関数

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

引数
なし
戻り値
JSONクラス種別
注意
なし

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

CJson.h の 128 行目に定義があります。

virtual bool LibJson::CJson::IsJsonObject ( )
inlinevirtualnoexcept

JSONクラス種別判定関数

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

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibJson::CJsonObjectで再実装されています。

CJson.h の 141 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonDocument::SetJsonSetValueByStream().

141 { return false; } // JSONオブジェクトクラス種別判定関数

被呼び出し関係図:

virtual bool LibJson::CJson::IsJsonArray ( )
inlinevirtualnoexcept

LibJson::CJsonArrayで再実装されています。

CJson.h の 142 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonDocument::GetJsonPath(), LibJson::CJsonDocument::SetJsonSetValueByStream().

142 { return false; } // JSON配列クラス種別判定関数

被呼び出し関係図:

virtual bool LibJson::CJson::IsJsonString ( )
inlinevirtualnoexcept

LibJson::CJsonStringで再実装されています。

CJson.h の 143 行目に定義があります。

143 { return false; } // JSON文字列クラス種別判定関数
virtual bool LibJson::CJson::IsJsonNumber ( )
inlinevirtualnoexcept

LibJson::CJsonNumberで再実装されています。

CJson.h の 144 行目に定義があります。

参照元 LibJson::CJsonConfig::Get().

144 { return false; } // JSON数値クラス種別判定関数

被呼び出し関係図:

virtual bool LibJson::CJson::IsJsonFixed ( )
inlinevirtualnoexcept

LibJson::CJsonFixedで再実装されています。

CJson.h の 145 行目に定義があります。

参照元 LibJson::CJsonConfig::Get().

145 { return false; } // JSON固定値クラス種別判定関数

被呼び出し関係図:

virtual bool LibJson::CJson::IsJsonPair ( )
inlinevirtualnoexcept

LibJson::CJsonPairで再実装されています。

CJson.h の 146 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonDocument::DeleteJson(), LibJson::CJsonDocument::GetJsonPath(), LibJson::CJsonDocument::SetJsonSetValueByStream().

146 { return false; } // JSONペアクラス種別判定関数

被呼び出し関係図:

virtual bool LibJson::CJson::IsJsonValue ( )
inlinevirtualnoexcept

LibJson::CJsonValueで再実装されています。

CJson.h の 147 行目に定義があります。

147 { return false; } // JSONバリュークラス種別判定関数
virtual bool LibJson::CJson::IsJsonContainer ( )
inlinevirtualnoexcept

LibJson::CJsonContainerで再実装されています。

CJson.h の 148 行目に定義があります。

参照元 LibJson::CJsonDocument::DeleteJson(), LibJson::CJsonDocument::SetJsonSetValueByStream().

148 { return false; } // JSONコンテナクラス種別判定関数

被呼び出し関係図:

virtual bool LibJson::CJson::IsJsonToken ( )
inlinevirtualnoexcept

LibJson::CJsonTokenで再実装されています。

CJson.h の 149 行目に定義があります。

149 { return false; } // JSONトークンクラス種別判定関数
virtual CJsonObject* LibJson::CJson::GetJsonObject ( )
inlinevirtualnoexcept

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

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

引数
なし
戻り値
JSONクラスインスタンスポインタ
注意
なし

LibJson::CJsonObjectで再実装されています。

CJson.h の 160 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath().

160 { return nullptr; } // JSONオブジェクトクラスインスタンス取得関数

被呼び出し関係図:

virtual CJsonArray* LibJson::CJson::GetJsonArray ( )
inlinevirtualnoexcept

LibJson::CJsonArrayで再実装されています。

CJson.h の 161 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonDocument::GetJsonPath().

161 { return nullptr; } // JSON配列クラスインスタンス取得関数

被呼び出し関係図:

virtual CJsonString* LibJson::CJson::GetJsonString ( )
inlinevirtualnoexcept

LibJson::CJsonPair, LibJson::CJsonStringで再実装されています。

CJson.h の 162 行目に定義があります。

参照元 LibJson::CJsonDocument::GetJsonPath().

162 { return nullptr; } // JSON文字列クラスインスタンス取得関数

被呼び出し関係図:

virtual CJsonNumber* LibJson::CJson::GetJsonNumber ( )
inlinevirtualnoexcept

LibJson::CJsonNumberで再実装されています。

CJson.h の 163 行目に定義があります。

163 { return nullptr; } // JSON数値クラスインスタンス取得関数
virtual CJsonFixed* LibJson::CJson::GetJsonFixed ( )
inlinevirtualnoexcept

LibJson::CJsonFixedで再実装されています。

CJson.h の 164 行目に定義があります。

164 { return nullptr; } // JSON固定値クラスインスタンス取得関数
virtual CJsonPair* LibJson::CJson::GetJsonPair ( )
inlinevirtualnoexcept

LibJson::CJsonPairで再実装されています。

CJson.h の 165 行目に定義があります。

参照元 LibJson::CJsonDocument::CreateJsonPath(), LibJson::CJsonObject::GetJsonElementIndex(), LibJson::CJsonDocument::SetJsonSetValueByStream().

165 { return nullptr; } // JSONペアクラスインスタンス取得関数

被呼び出し関係図:

virtual CJsonValue* LibJson::CJson::GetJsonValue ( )
inlinevirtualnoexcept

LibJson::CJsonPair, LibJson::CJsonValueで再実装されています。

CJson.h の 166 行目に定義があります。

参照元 LibJson::CJsonDocument::SetJsonSetValueByStream().

166 { return nullptr; } // JSONバリュークラスインスタンス取得関数

被呼び出し関係図:

virtual CJsonContainer* LibJson::CJson::GetJsonContainer ( )
inlinevirtualnoexcept

LibJson::CJsonContainerで再実装されています。

CJson.h の 167 行目に定義があります。

参照元 LibJson::CJsonDocument::DeleteJson(), LibJson::CJsonDocument::SetJsonSetValueByStream().

167 { return nullptr; } // JSONコンテナクラスインスタンス取得関数

被呼び出し関係図:

virtual CJsonToken* LibJson::CJson::GetJsonToken ( )
inlinevirtualnoexcept

LibJson::CJsonTokenで再実装されています。

CJson.h の 168 行目に定義があります。

168 { return nullptr; } // JSONトークンクラスインスタンス取得関数
CJson * LibJson::CJson::GetJsonRoot ( )
virtualnoexcept

ルートJSONクラス取得関数

ルートJSONクラス取得関数です。

引数
なし
戻り値
JSONクラスポインタ
注意
なし

CJson.cpp の 61 行目に定義があります。

参照先 GetJsonParent().

参照元 LibJson::CJsonDocument::CreatePath(), LibJson::CJsonDocument::SetCurrentJson().

61  {
62  // 処理ブロック
63  CJson* result = nullptr;
64  do {
65  // 巡回する
66  for ( CJson* pcJson = const_cast< CJson* >( this );; ) {
67  // 親JSONクラスポインタを調べる
68  CJson* pcParent = pcJson->GetJsonParent();
69  if ( nullptr == pcParent ) {
70  // 成功!
71  result = pcJson;
72  break;
73  }
74 
75  // JSONクラスポインタを更新する
76  pcJson = pcParent;
77  }
78  } while ( false );
79 
80  // 実行結果を返す
81  return result;
82  }
CJson(CJson *pcParent) noexcept
コンストラクタ
Definition: CJson.cpp:33

呼び出し関係図:

被呼び出し関係図:

void LibJson::CJson::ClearJson ( )
virtualnoexcept

JSONクラスクリア関数

JSONクラスクリア関数です。

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

LibJson::CJsonContainer, LibJson::CJsonPair, LibJson::CJsonTokenで再実装されています。

CJson.cpp の 86 行目に定義があります。

参照先 LibCommon::CArray< Type >::Clear(), m_pcInputPointerList.

参照元 LibJson::CJsonToken::ClearJson(), LibJson::CJsonPair::ClearJson(), LibJson::CJsonContainer::ClearJson().

86  {
87  // 入力ストリームポインタリストをクリアする
89  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
CArray< int > * m_pcInputPointerList
入力ストリームポインタリストポインタ
Definition: CJson.h:238

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJson::CompactJson ( )
virtualnoexcept

JSONクラスコンパクト化関数

JSONクラスコンパクト化関数です。

引数
なし
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibJson::CJsonContainer, LibJson::CJsonPair, LibJson::CJsonTokenで再実装されています。

CJson.cpp の 93 行目に定義があります。

参照先 LibCommon::CArray< Type >::CompactBuffer(), m_pcInputPointerList.

参照元 LibJson::CJsonDocument::CompactDocument(), LibJson::CJsonToken::CompactJson(), LibJson::CJsonPair::CompactJson(), LibJson::CJsonContainer::CompactJson().

93  {
94  // 処理ブロック
95  bool result = false;
96  do {
97  // 入力ストリームポインタリストバッファサイズをコンパクト化する
99  // 失敗!
100  break;
101  }
102 
103  // 成功!
104  result = true;
105  } while ( false );
106 
107  // 実行結果を返す
108  return result;
109  }
CArray< int > * m_pcInputPointerList
入力ストリームポインタリストポインタ
Definition: CJson.h:238
virtual bool CompactBuffer() noexcept
バッファサイズコンパクト化関数
Definition: CArray.hpp:297

呼び出し関係図:

被呼び出し関係図:

virtual bool LibJson::CJson::InputJson ( CStream &  rcStream)
inlinevirtualnoexcept

JSONクラス入力関数

JSONクラス入力関数です。

引数
[in]rcStream入力ストリーム参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

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

CJson.h の 219 行目に定義があります。

219 { return false; }
virtual bool LibJson::CJson::OutputJson ( CStreamOut &  rcStreamOut)
inlinevirtualnoexcept

JSONクラス出力関数

JSONクラス出力関数です。

引数
[in]rcStreamOut出力ストリーム参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

LibJson::CJsonContainer, LibJson::CJsonPair, LibJson::CJsonToken, LibJson::CJsonStringで再実装されています。

CJson.h の 232 行目に定義があります。

参照元 LibJson::CJsonDocument::OutputDocument(), LibJson::CJsonPair::OutputJson(), LibJson::CJsonContainer::OutputJson().

232 { return false; }

被呼び出し関係図:

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

メンバ詳解

CJson* LibJson::CJson::m_pcParent
protected

親JSONクラスポインタ

CJson.h の 237 行目に定義があります。

CArray< int >* LibJson::CJson::m_pcInputPointerList
protected

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