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 CJsonGetJsonParent () 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 CJsonObjectGetJsonObject () noexcept
 JSONクラスインスタンス取得関数 [詳解]
 
virtual CJsonArrayGetJsonArray () noexcept
 
virtual CJsonStringGetJsonString () noexcept
 
virtual CJsonNumberGetJsonNumber () noexcept
 
virtual CJsonFixedGetJsonFixed () noexcept
 
virtual CJsonPairGetJsonPair () noexcept
 
virtual CJsonValueGetJsonValue () 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クラス出力関数 [詳解]
 

限定公開変数類

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

非公開メンバ関数

 CJson (CJson const &)=delete
 
CJsonoperator= (CJson const &)=delete
 

詳解

JSONクラス

JSONクラスです。

注意
なし

CJson.h44 行目に定義があります。

列挙型メンバ詳解

JSONクラス種別列挙体

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

注意
なし
列挙値
Invalid 

無効値

JsonObject 

JSONオブジェクトクラス

JsonArray 

JSON配列クラス

JsonString 

JSON文字列クラス

JsonNumber 

JSON数値クラス

JsonFixed 

JSON固定値クラス

JsonPair 

JSONペアクラス

JsonValue 

JSONバリュークラス

JsonContainer 

JSONコンテナクラス

JsonToken 

JSONトークンクラス

Size 

列挙体サイズ

CJson.h55 行目に定義があります。

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

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

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

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

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

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

JSONクラス種別判定関数

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

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

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

CJson.h141 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h142 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h143 行目に定義があります。

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

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

CJson.h144 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h145 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h146 行目に定義があります。

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

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

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

CJson.h148 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h149 行目に定義があります。

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

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

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

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

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

CJson.h160 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h161 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h162 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h163 行目に定義があります。

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

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

CJson.h164 行目に定義があります。

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

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

CJson.h165 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h166 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h167 行目に定義があります。

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

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

被呼び出し関係図:

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

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

CJson.h168 行目に定義があります。

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

ルートJSONクラス取得関数

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

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

CJson.cpp61 行目に定義があります。

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

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

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

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

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

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

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