Solution46
LibJson::CJsonArray クラス

JSON配列クラス [詳解]

#include "CJsonArray.h"

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

公開メンバ関数

 CJsonArray (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJsonArray () noexcept
 デストラクタ [詳解]
 
virtual EJsonClass GetJsonClass () noexcept override
 JSONクラス種別取得関数 [詳解]
 
virtual bool IsJsonArray () noexcept override
 JSONクラス種別判定関数 [詳解]
 
virtual CJsonArrayGetJsonArray () noexcept override
 JSONクラスインスタンス取得関数 [詳解]
 
virtual wchar_t GetOpenChar () noexcept override
 オープン文字取得関数 [詳解]
 
virtual wchar_t GetCloseChar () noexcept override
 クローズ文字取得関数 [詳解]
 
virtual CJsonCreateInputJsonElement (CStream &rcStream, CJson *pcParent) noexcept override
 JSONエレメント入力作成関数 [詳解]
 
- 基底クラス LibJson::CJsonContainer に属する継承公開メンバ関数
 CJsonContainer (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJsonContainer () noexcept
 デストラクタ [詳解]
 
virtual bool IsJsonContainer () noexcept override
 JSONクラス種別判定関数 [詳解]
 
virtual CJsonContainerGetJsonContainer () noexcept override
 JSONクラスインスタンス取得関数 [詳解]
 
virtual void ClearJson () noexcept override
 JSONクラスクリア関数 [詳解]
 
virtual bool CompactJson () noexcept override
 JSONクラスコンパクト化関数 [詳解]
 
virtual bool InputJson (CStream &rcStream) noexcept override
 JSONクラス入力関数 [詳解]
 
virtual bool OutputJson (CStreamOut &rcStreamOut) noexcept override
 JSONクラス出力関数 [詳解]
 
virtual CJsonGetJsonElement (int nIndex) noexcept
 JSONエレメント取得関数 [詳解]
 
virtual bool SetJsonElement (int nIndex, CJson *pcJson) noexcept
 JSONエレメント設定関数 [詳解]
 
virtual bool ExtendJsonElementCount (int nCount) noexcept
 JSONエレメント数拡張関数 [詳解]
 
- 基底クラス LibJson::CJsonValue に属する継承公開メンバ関数
 CJsonValue (CJson *pcParent) noexcept
 コンストラクタ [詳解]
 
virtual ~CJsonValue () noexcept
 デストラクタ [詳解]
 
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 IsJsonString () noexcept
 
virtual bool IsJsonNumber () noexcept
 
virtual bool IsJsonFixed () noexcept
 
virtual bool IsJsonPair () noexcept
 
virtual bool IsJsonToken () noexcept
 
virtual CJsonObjectGetJsonObject () noexcept
 JSONクラスインスタンス取得関数 [詳解]
 
virtual CJsonStringGetJsonString () noexcept
 
virtual CJsonNumberGetJsonNumber () noexcept
 
virtual CJsonFixedGetJsonFixed () noexcept
 
virtual CJsonPairGetJsonPair () noexcept
 
virtual CJsonTokenGetJsonToken () noexcept
 
virtual CJsonGetJsonRoot () noexcept
 ルートJSONクラス取得関数 [詳解]
 
- 基底クラス LibCommon::CArray< CJson * > に属する継承公開メンバ関数
 CArray () noexcept
 コンストラクタ [詳解]
 
 CArray (CJson * const &rElement) noexcept
 コンストラクタ [詳解]
 
 CArray (CJson * const *pBuffer, int nCount) noexcept
 コンストラクタ [詳解]
 
 CArray (std::initializer_list< CJson * const > const &rcInitializer) noexcept
 コンストラクタ [詳解]
 
 CArray (CArray const &rcInstance) noexcept
 コピーコンストラクタ [詳解]
 
 CArray (CArray &&rcInstance) noexcept
 ムーブコンストラクタ [詳解]
 
virtual ~CArray () noexcept
 デストラクタ [詳解]
 
virtual CJson * * GetBuffer () noexcept
 配列要素バッファ取得関数 [詳解]
 
virtual int GetSize () const noexcept
 バッファサイズ取得関数 [詳解]
 
virtual int GetCount () const noexcept
 配列要素数取得関数 [詳解]
 
virtual int GetSegmentSize () const noexcept
 セグメントサイズ取得関数 [詳解]
 
virtual CArrayoperator= (CArray const &rcInstance) noexcept
 コピー代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator= (CArray &&rcInstance) noexcept
 ムーブ代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator= (CJson * const &rElement) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator= (std::initializer_list< CJson * const > const &rcInitializer) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator+= (CArray const &rcInstance) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator+= (CJson * const &rElement) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator+= (std::initializer_list< CJson * const > const &rcInitializer) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CJson * & operator[] (int nIndex) noexcept
 配列添字演算子オーバーロード関数 [詳解]
 
virtual operator CJson * const * () noexcept
 配列要素ポインタキャスト演算子オーバーロード関数 [詳解]
 
virtual CArrayoperator() () noexcept
 関数演算子オーバーロード関数 [詳解]
 
virtual void Clear () noexcept
 クリア関数 [詳解]
 
virtual bool CreateBuffer (int nSize) noexcept
 バッファ作成関数 [詳解]
 
virtual bool UpdateBuffer (int nCount) noexcept
 バッファサイズ更新関数 [詳解]
 
virtual bool CompactBuffer () noexcept
 バッファサイズコンパクト化関数 [詳解]
 
virtual bool Copy (CArray const &rcInstance) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (CJson * const &rElement) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (CJson * const *pBuffer, int nCount) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (std::initializer_list< CJson * const > const &rcInitializer) noexcept
 コピー関数 [詳解]
 
virtual bool Move (CArray &&rcInstance) noexcept
 ムーブ関数 [詳解]
 
virtual bool Append (CArray const &rcInstance) noexcept
 追加関数 [詳解]
 
virtual bool Append (CJson * const &rElement) noexcept
 追加関数 [詳解]
 
virtual bool Append (CJson * const *pBuffer, int nCount) noexcept
 追加関数 [詳解]
 
virtual bool Append (std::initializer_list< CJson * const > const &rcInitializer) noexcept
 追加関数 [詳解]
 
virtual bool Insert (int nIndex, CArray const &rcInstance) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, CJson * const &rElement) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, CJson * const *pBuffer, int nCount) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, std::initializer_list< CJson * const > const &rcInitializer) noexcept
 挿入関数 [詳解]
 
virtual bool Remove () noexcept
 削除関数 [詳解]
 
virtual bool Remove (int nIndex) noexcept
 削除関数 [詳解]
 
virtual bool Remove (int nIndex, int nCount) noexcept
 削除関数 [詳解]
 
virtual bool Get (int nIndex, CJson * &rElement) const noexcept
 取得関数 [詳解]
 
virtual bool Set (int nIndex, CJson * const &rElement) noexcept
 設定関数 [詳解]
 
virtual int Find (CJson * const &rElement) const noexcept
 検索関数 [詳解]
 
virtual bool Compare (CJson * const &rElement1, CJson * const &rElement2) const noexcept
 比較関数 [詳解]
 
virtual bool Push (CJson * const &rElement) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (CJson * const *pBuffer, int nCount) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (std::initializer_list< CJson * const > const &rcInitializer) noexcept
 プッシュ関数 [詳解]
 
virtual bool Pop (CJson * &rElement) noexcept
 ポップ関数 [詳解]
 
virtual bool PopFront (CJson * &rElement) noexcept
 ポップフロント関数 [詳解]
 

静的公開メンバ関数

static CJsonArrayCreateInputJson (CStream &rcStream, CJson *pcParent) noexcept
 JSON配列入力作成関数 [詳解]
 
- 基底クラス LibJson::CJsonValue に属する継承静的公開メンバ関数
static CJsonValueCreateInputJson (CStream &rcStream, CJson *pcParent) noexcept
 JSONバリュー入力作成関数 [詳解]
 

非公開メンバ関数

 CJsonArray (CJsonArray const &)=delete
 
CJsonArrayoperator= (CJsonArray 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クラス種別列挙体 [詳解]
 
- 基底クラス LibCommon::CArray< CJson * > に属する継承静的公開変数類
static int const SEGMENT_SIZE
 セグメントサイズ初期値 [詳解]
 
- 基底クラス LibJson::CJson に属する継承限定公開変数類
CJsonm_pcParent
 親JSONクラスポインタ [詳解]
 
CArray< int > * m_pcInputPointerList
 入力ストリームポインタリストポインタ [詳解]
 
- 基底クラス LibCommon::CArray< CJson * > に属する継承限定公開変数類
CJson * * m_pBuffer
 バッファポインタ [詳解]
 
int m_nSize
 バッファサイズ [詳解]
 
int m_nCount
 要素数 [詳解]
 

詳解

JSON配列クラス

JSON配列クラスです。

注意
なし

CJsonArray.h31 行目に定義があります。

構築子と解体子

LibJson::CJsonArray::CJsonArray ( CJson pcParent)
explicitnoexcept

コンストラクタ

コンストラクタです。

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

CJsonArray.cpp32 行目に定義があります。

34  : CJsonContainer( pcParent )
35  {}
CJsonContainer(CJson *pcParent) noexcept
コンストラクタ
virtual LibJson::CJsonArray::~CJsonArray ( )
inlinevirtualnoexcept

デストラクタ

デストラクタです。

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

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

55 {}
LibJson::CJsonArray::CJsonArray ( CJsonArray const &  )
privatedelete

関数詳解

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

JSONクラス種別取得関数

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

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

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

CJsonArray.h69 行目に定義があります。

virtual bool LibJson::CJsonArray::IsJsonArray ( )
inlineoverridevirtualnoexcept

JSONクラス種別判定関数

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

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

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

CJsonArray.h82 行目に定義があります。

82 { return true; }
virtual CJsonArray* LibJson::CJsonArray::GetJsonArray ( )
inlineoverridevirtualnoexcept

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

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

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

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

CJsonArray.h93 行目に定義があります。

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

93 { return this; }

被呼び出し関係図:

virtual wchar_t LibJson::CJsonArray::GetOpenChar ( )
inlineoverridevirtualnoexcept

オープン文字取得関数

オープン文字取得関数です。

引数
なし
戻り値
文字コード
注意
オーバライド関数です。

LibJson::CJsonContainerを実装しています。

CJsonArray.h104 行目に定義があります。

104 { return L'['; }
virtual wchar_t LibJson::CJsonArray::GetCloseChar ( )
inlineoverridevirtualnoexcept

クローズ文字取得関数

クローズ文字取得関数です。

引数
なし
戻り値
文字コード
注意
オーバライド関数です。

LibJson::CJsonContainerを実装しています。

CJsonArray.h115 行目に定義があります。

115 { return L']'; }
virtual CJson* LibJson::CJsonArray::CreateInputJsonElement ( CStream rcStream,
CJson pcParent 
)
inlineoverridevirtualnoexcept

JSONエレメント入力作成関数

JSONエレメント入力作成関数です。

引数
[in]rcStream入力ストリーム参照
[in]pcParent親JSONクラスポインタ
戻り値
JSON派生クラスポインタ
注意
オーバライド関数です。

LibJson::CJsonContainerを実装しています。

CJsonArray.h127 行目に定義があります。

参照先 LibJson::CJsonValue::CreateInputJson().

127 { return CJsonValue::CreateInputJson( rcStream, pcParent ); }
static CJsonValue * CreateInputJson(CStream &rcStream, CJson *pcParent) noexcept
JSONバリュー入力作成関数
Definition: CJsonValue.cpp:46

呼び出し関係図:

CJsonArray * LibJson::CJsonArray::CreateInputJson ( CStream rcStream,
CJson pcParent 
)
staticnoexcept

JSON配列入力作成関数

JSON配列入力作成関数です。

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

CJsonArray.cpp41 行目に定義があります。

参照先 LibJson::CJsonContainer::InputJson().

参照元 LibJson::CJsonValue::CreateInputJson().

41  {
42  // 処理ブロック
43  CJsonArray* result = nullptr;
44  do {
45  // JSON配列を作成する
46  CJsonArray* pcJsonArray = new CJsonArray( pcParent );
47  if ( nullptr == pcJsonArray ) {
48  // 失敗!
49  break;
50  }
51  // JSON配列を入力する
52  else if ( !pcJsonArray->InputJson( rcStream ) ) {
53  // JSON配列を削除する
54  delete pcJsonArray;
55 
56  // 失敗!
57  break;
58  }
59 
60  // 成功!
61  result = pcJsonArray;
62  } while ( false );
63 
64  // 実行結果を返す
65  return result;
66  }
CJsonArray(CJson *pcParent) noexcept
コンストラクタ
Definition: CJsonArray.cpp:32

呼び出し関係図:

被呼び出し関係図:

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

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