Solution46
LibJson::CJsonToken クラス

JSONトークンクラス [詳解]

#include "CJsonToken.h"

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

公開メンバ関数

 CJsonToken (CJson *pcParent, wchar_t const *pszString=nullptr) noexcept
 コンストラクタ [詳解]
 
virtual ~CJsonToken () noexcept
 デストラクタ [詳解]
 
virtual EJsonClass GetJsonClass () noexcept override
 JSONクラス種別取得関数 [詳解]
 
virtual bool IsJsonToken () noexcept override
 JSONクラス種別判定関数 [詳解]
 
virtual CJsonTokenGetJsonToken () noexcept override
 JSONクラスインスタンス取得関数 [詳解]
 
virtual void ClearJson () noexcept override
 JSONクラスクリア関数 [詳解]
 
virtual bool CompactJson () noexcept override
 JSONクラスコンパクト化関数 [詳解]
 
virtual bool OutputJson (CStreamOut &rcStreamOut) noexcept override
 JSONクラス出力関数 [詳解]
 
virtual bool InputJsonChars (CStream &rcStream, wchar_t const *pszNgChars=nullptr) noexcept
 JSON文字集合入力関数 [詳解]
 
virtual bool InputJsonChar (CStream &rcStream, wchar_t const *pszNgChars=nullptr) noexcept
 JSON文字入力関数 [詳解]
 
virtual bool InputJsonInt (CStream &rcStream) noexcept
 JSON整数部入力関数 [詳解]
 
virtual bool InputJsonFrac (CStream &rcStream) noexcept
 JSON小数部入力関数 [詳解]
 
virtual bool InputJsonExp (CStream &rcStream) noexcept
 JSON指数部入力関数 [詳解]
 
virtual bool InputJsonExpHeader (CStream &rcStream) noexcept
 JSON指数部ヘッダ入力関数 [詳解]
 
virtual bool InputJsonDigits (CStream &rcStream) noexcept
 JSON数字集合入力関数 [詳解]
 
virtual bool InputJsonDigit (CStream &rcStream) noexcept
 JSON数字入力関数 [詳解]
 
virtual bool InputJsonFixedChar (CStream &rcStream, wchar_t ch, bool bIgnore=false) noexcept
 JSON固定文字入力関数 [詳解]
 
virtual bool InputJsonFixedString (CStream &rcStream, wchar_t const *pszString) noexcept
 JSON固定文字列入力関数 [詳解]
 
virtual wchar_t GetLastChar () noexcept
 最後尾文字取得関数 [詳解]
 
virtual bool PushStreamPoints (CStream &rcStream) noexcept
 ストリームポインタプッシュ関数 [詳解]
 
virtual bool PopStreamPoints (CStream &rcStream, bool bResume) noexcept
 ストリームポインタポップ関数 [詳解]
 
- 基底クラス 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 IsJsonArray () noexcept
 
virtual bool IsJsonString () noexcept
 
virtual bool IsJsonNumber () noexcept
 
virtual bool IsJsonFixed () noexcept
 
virtual bool IsJsonPair () noexcept
 
virtual bool IsJsonContainer () noexcept
 
virtual CJsonObjectGetJsonObject () noexcept
 JSONクラスインスタンス取得関数 [詳解]
 
virtual CJsonArrayGetJsonArray () noexcept
 
virtual CJsonStringGetJsonString () noexcept
 
virtual CJsonNumberGetJsonNumber () noexcept
 
virtual CJsonFixedGetJsonFixed () noexcept
 
virtual CJsonPairGetJsonPair () noexcept
 
virtual CJsonContainerGetJsonContainer () noexcept
 
virtual CJsonGetJsonRoot () noexcept
 ルートJSONクラス取得関数 [詳解]
 
virtual bool InputJson (CStream &rcStream) noexcept
 JSONクラス入力関数 [詳解]
 
- 基底クラス LibCommon::CStringStream に属する継承公開メンバ関数
 CStringStream (wchar_t const *pszString=nullptr) noexcept
 コンストラクタ [詳解]
 
virtual ~CStringStream () noexcept
 デストラクタ [詳解]
 
virtual void Clear () noexcept override
 クリア関数 [詳解]
 
virtual bool OutputChar (wchar_t ch) noexcept override
 1文字出力関数 [詳解]
 
virtual bool OutputString (wchar_t const *pszString) noexcept override
 文字列出力関数 [詳解]
 
virtual bool InputChar (wchar_t &rCh) noexcept override
 1文字入力関数 [詳解]
 
virtual int GetStreamSize () const noexcept override
 ストリームサイズ取得関数 [詳解]
 
virtual int GetStreamPoint () const noexcept override
 ストリームポインタ取得関数 [詳解]
 
virtual bool SetStreamPoint (int nPoint) noexcept override
 ストリームポインタ設定関数 [詳解]
 
virtual bool SetStreamEnd () noexcept override
 ストリーム終端設定関数 [詳解]
 
- 基底クラス LibCommon::CString に属する継承公開メンバ関数
 CString () noexcept
 コンストラクタ [詳解]
 
 CString (wchar_t const &rChar) noexcept
 コンストラクタ [詳解]
 
 CString (wchar_t const *pszString) noexcept
 コンストラクタ [詳解]
 
 CString (wchar_t const *pszString, int nCount) noexcept
 コンストラクタ [詳解]
 
 CString (char const *pszMbString) noexcept
 コンストラクタ [詳解]
 
 CString (char const *pszMbString, int nCount) noexcept
 コンストラクタ [詳解]
 
 CString (std::initializer_list< wchar_t const > const &rcInitializer) noexcept
 コンストラクタ [詳解]
 
 CString (CString const &rcInstance) noexcept
 コピーコンストラクタ [詳解]
 
 CString (CString &&rcInstance) noexcept
 ムーブコンストラクタ [詳解]
 
virtual ~CString () noexcept
 デストラクタ [詳解]
 
virtual wchar_t const * GetBuffer () const noexcept
 文字列バッファ取得関数 [詳解]
 
virtual int GetSize () const noexcept
 バッファサイズ取得関数 [詳解]
 
virtual int GetCount () const noexcept
 文字数取得関数 [詳解]
 
virtual int GetSegmentSize () const noexcept
 セグメントサイズ取得関数 [詳解]
 
virtual CStringoperator= (CString const &rcInstance) noexcept
 コピー代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator= (CString &&rcInstance) noexcept
 ムーブ代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator= (wchar_t const &rChar) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator= (wchar_t const *pszString) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator= (char const *pszMbString) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator= (std::initializer_list< wchar_t const > const &rcInitializer) noexcept
 代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator+= (CString const &rcInstance) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator+= (wchar_t const &rChar) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator+= (wchar_t const *pszString) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator+= (char const *pszMbString) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual CStringoperator+= (std::initializer_list< wchar_t const > const &rcInitializer) noexcept
 加算代入演算子オーバーロード関数 [詳解]
 
virtual wchar_t & operator[] (int nIndex) noexcept
 配列添字演算子オーバーロード関数 [詳解]
 
virtual operator wchar_t const * () noexcept
 文字列ポインタキャスト演算子オーバーロード関数 [詳解]
 
virtual CStringoperator() () noexcept
 関数演算子オーバーロード関数 [詳解]
 
virtual bool CreateBuffer (int nSize) noexcept
 バッファ作成関数 [詳解]
 
virtual bool UpdateBuffer (int nCount) noexcept
 バッファサイズ更新関数 [詳解]
 
virtual bool CompactBuffer () noexcept
 バッファサイズコンパクト化関数 [詳解]
 
virtual bool Copy (CString const &rcInstance) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (wchar_t const &rChar) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (wchar_t const *pszString) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (wchar_t const *pszString, int nCount) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (char const *pszMbString) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (char const *pszMbString, int nCount) noexcept
 コピー関数 [詳解]
 
virtual bool Copy (std::initializer_list< wchar_t const > const &rcInitializer) noexcept
 コピー関数 [詳解]
 
virtual bool Move (CString &&rcInstance) noexcept
 ムーブ関数 [詳解]
 
virtual bool Append (CString const &rcInstance) noexcept
 追加関数 [詳解]
 
virtual bool Append (wchar_t const &rChar) noexcept
 追加関数 [詳解]
 
virtual bool Append (wchar_t const *pszString) noexcept
 追加関数 [詳解]
 
virtual bool Append (wchar_t const *pszString, int nCount) noexcept
 追加関数 [詳解]
 
virtual bool Append (char const *pszMbString) noexcept
 追加関数 [詳解]
 
virtual bool Append (char const *pszMbString, int nCount) noexcept
 追加関数 [詳解]
 
virtual bool Append (std::initializer_list< wchar_t const > const &rcInitializer) noexcept
 追加関数 [詳解]
 
virtual bool Insert (int nIndex, CString const &rcInstance) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, wchar_t const &rChar) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, wchar_t const *pszString) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, wchar_t const *pszString, int nCount) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, char const *pszMbString) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, char const *pszMbString, int nCount) noexcept
 挿入関数 [詳解]
 
virtual bool Insert (int nIndex, std::initializer_list< wchar_t 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, wchar_t &rChar) const noexcept
 取得関数 [詳解]
 
virtual bool Set (int nIndex, wchar_t const &rChar) noexcept
 設定関数 [詳解]
 
virtual int Find (wchar_t const &rChar) const noexcept
 検索関数 [詳解]
 
virtual bool Push (wchar_t const &rChar) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (wchar_t const *pszString) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (wchar_t const *pszString, int nCount) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (char const *pszMbString) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (char const *pszMbString, int nCount) noexcept
 プッシュ関数 [詳解]
 
virtual bool Push (std::initializer_list< wchar_t const > const &rcInitializer) noexcept
 プッシュ関数 [詳解]
 
virtual bool Pop (wchar_t &rChar) noexcept
 ポップ関数 [詳解]
 
virtual bool PopFront (wchar_t &rChar) noexcept
 ポップフロント関数 [詳解]
 
virtual wchar_t const * Format (wchar_t const *pszFormat,...) noexcept
 書式設定文字列代入関数 [詳解]
 
virtual wchar_t const * FormatArgs (wchar_t const *pszFormat, va_list vaArgs) noexcept
 引数リスト書式設定文字列代入関数 [詳解]
 
- 基底クラス LibCommon::CStream に属する継承公開メンバ関数
virtual int InputString (wchar_t *pszBuffer, int nSize) noexcept
 文字列入力関数 [詳解]
 
virtual bool IsStreamEnd () const noexcept
 ストリーム終端状態取得関数 [詳解]
 
virtual bool SkipSpace () noexcept
 空白スキップ関数 [詳解]
 
virtual bool SkipChar (wchar_t ch, bool bIgnore=false) noexcept
 1文字スキップ関数 [詳解]
 
virtual bool SkipChar (wchar_t const *pszString, bool bIgnore=false) noexcept
 1文字スキップ関数 [詳解]
 
virtual bool PushStreamPoint (CArray< int > *pcPointerList) noexcept
 ストリームポインタプッシュ関数 [詳解]
 
virtual bool PopStreamPoint (CArray< int > *pcPointerList, bool bResume) noexcept
 ストリームポインタポップ数 [詳解]
 
- 基底クラス LibCommon::CStreamOut に属する継承公開メンバ関数
virtual bool OutputFormat (wchar_t const *pszFormat,...) noexcept
 書式設定文字列出力関数 [詳解]
 
virtual bool OutputArgs (wchar_t const *pszFormat, va_list vaArgs) noexcept
 引数リスト文字列出力関数 [詳解]
 
virtual bool OutputNewLine () noexcept
 改行出力関数 [詳解]
 
virtual bool OutputLineHeader () noexcept
 行ヘッダー出力関数 [詳解]
 
virtual bool UpdateLineNumber () noexcept
 行番号更新関数 [詳解]
 
virtual int GetLineNumber () noexcept
 行番号取得関数 [詳解]
 
virtual int GetIndentCount () noexcept
 インデントカウント取得関数 [詳解]
 
virtual bool OutputIndent () noexcept
 インデント出力関数 [詳解]
 
virtual bool Indent () noexcept
 インデント関数 [詳解]
 
virtual bool Unindent () noexcept
 アンインデント関数 [詳解]
 
virtual bool OutputLineString (wchar_t const *pszString, bool bHeader=true, bool bIndent=true) noexcept
 文字列行出力関数 [詳解]
 
virtual bool OutputLineFormat (wchar_t const *pszFormat,...) noexcept
 書式設定文字列行出力関数 [詳解]
 
virtual bool OutputLineArgs (wchar_t const *pszFormat, va_list vaArgs) noexcept
 引数リスト文字列行出力関数 [詳解]
 
virtual bool ExOutputLineFormat (bool bHeader, bool bIndent, wchar_t const *pszFormat,...) noexcept
 拡張書式設定文字列行出力関数 [詳解]
 
virtual bool ExOutputLineArgs (bool bHeader, bool bIndent, wchar_t const *pszFormat, va_list vaArgs) noexcept
 拡張引数リスト文字列行出力関数 [詳解]
 

限定公開変数類

CArray< int > * m_pcStringPointerList
 文字列ストリームポインタリストポインタ [詳解]
 
- 基底クラス LibJson::CJson に属する継承限定公開変数類
CJsonm_pcParent
 親JSONクラスポインタ [詳解]
 
CArray< int > * m_pcInputPointerList
 入力ストリームポインタリストポインタ [詳解]
 
- 基底クラス LibCommon::CStringStream に属する継承限定公開変数類
int m_nStreamPoint
 ストリームポインタ [詳解]
 
- 基底クラス LibCommon::CString に属する継承限定公開変数類
wchar_t * m_pszBuffer
 文字列ポインタ [詳解]
 
int m_nSize
 バッファサイズ [詳解]
 
int m_nCount
 要素数 [詳解]
 
- 基底クラス LibCommon::CStreamOut に属する継承限定公開変数類
int m_nLine
 行番号 [詳解]
 
int m_nIndent
 インデントカウント [詳解]
 

非公開メンバ関数

 CJsonToken (CJsonToken const &)=delete
 
CJsonTokenoperator= (CJsonToken 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::CJsonValue に属する継承静的公開メンバ関数
static CJsonValueCreateInputJson (CStream &rcStream, CJson *pcParent) noexcept
 JSONバリュー入力作成関数 [詳解]
 
- 基底クラス LibCommon::CString に属する継承静的公開変数類
static int const SEGMENT_SIZE = 256
 セグメントサイズ初期値 [詳解]
 
- 基底クラス LibCommon::CStringStream に属する継承限定公開メンバ関数
virtual bool UpdateStreamPoint (int nPoint) noexcept
 ストリームポインタ更新関数 [詳解]
 
virtual bool UpdateEndPoint (int nPoint) noexcept
 終端ストリームポインタ更新関数 [詳解]
 
- 基底クラス LibCommon::CStream に属する継承限定公開メンバ関数
 CStream () noexcept
 コンストラクタ [詳解]
 
virtual ~CStream () noexcept
 デストラクタ [詳解]
 
- 基底クラス LibCommon::CStreamOut に属する継承限定公開メンバ関数
 CStreamOut () noexcept
 コンストラクタ [詳解]
 
virtual ~CStreamOut () noexcept
 デストラクタ [詳解]
 
- 基底クラス LibCommon::CStreamOut に属する継承静的限定公開変数類
static int const FORMAT_BUFFER_SIZE = ( 2048 - 1 )
 書式設定文字列バッファサイズ [詳解]
 

詳解

JSONトークンクラス

JSONトークンクラスです。

注意
なし

CJsonToken.h32 行目に定義があります。

構築子と解体子

LibJson::CJsonToken::CJsonToken ( CJson pcParent,
wchar_t const *  pszString = nullptr 
)
explicitnoexcept

コンストラクタ

コンストラクタです。

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

CJsonToken.cpp29 行目に定義があります。

参照先 NotifyFatalError.

31  : CJsonValue( pcParent )
32  , CStringStream( pszString )
33  // メンバ変数初期化
34  , m_pcStringPointerList( nullptr )
35  {
36  // 処理ブロック
37  do {
38  // 文字列ストリームポインタリストを作成する
40  if ( nullptr == m_pcStringPointerList ) {
41  // 致命的エラー!
43  break;
44  }
45  } while ( false );
46  }
#define NotifyFatalError()
致命的エラー発生通知マクロ
Definition: LibUtility.h:22
CStringStream(wchar_t const *pszString=nullptr) noexcept
コンストラクタ
CJsonValue(CJson *pcParent) noexcept
コンストラクタ
Definition: CJsonValue.cpp:37
CArray< int > * m_pcStringPointerList
文字列ストリームポインタリストポインタ
Definition: CJsonToken.h:312
LibJson::CJsonToken::~CJsonToken ( )
virtualnoexcept

デストラクタ

デストラクタです。

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

CJsonToken.cpp50 行目に定義があります。

参照先 m_pcStringPointerList.

50  {
51  // 文字列ストリームポインタリストを削除する
52  delete m_pcStringPointerList;
53  }
CArray< int > * m_pcStringPointerList
文字列ストリームポインタリストポインタ
Definition: CJsonToken.h:312
LibJson::CJsonToken::CJsonToken ( CJsonToken const &  )
privatedelete

関数詳解

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

JSONクラス種別取得関数

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

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

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

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

CJsonToken.h71 行目に定義があります。

71 { return EJsonClass::JsonToken; }
JSONトークンクラス
virtual bool LibJson::CJsonToken::IsJsonToken ( )
inlineoverridevirtualnoexcept

JSONクラス種別判定関数

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

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

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

CJsonToken.h84 行目に定義があります。

84 { return true; }
virtual CJsonToken* LibJson::CJsonToken::GetJsonToken ( )
inlineoverridevirtualnoexcept

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

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

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

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

CJsonToken.h95 行目に定義があります。

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

95 { return this; }

被呼び出し関係図:

void LibJson::CJsonToken::ClearJson ( )
overridevirtualnoexcept

JSONクラスクリア関数

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

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

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

CJsonToken.cpp59 行目に定義があります。

参照先 LibCommon::CStringStream::Clear(), LibCommon::CArray< Type >::Clear(), LibJson::CJson::ClearJson(), m_pcStringPointerList.

59  {
60  // JSONバリュー基底クラスをクリアする
62 
63  // 文字列ストリーム基底クラスをクリアする
65 
66  // 文字列ストリームポインタリストをクリアする
68  }
virtual void Clear() noexcept
クリア関数
Definition: CArray.hpp:209
CArray< int > * m_pcStringPointerList
文字列ストリームポインタリストポインタ
Definition: CJsonToken.h:312
virtual void Clear() noexcept override
クリア関数
virtual void ClearJson() noexcept
JSONクラスクリア関数
Definition: CJson.cpp:86

呼び出し関係図:

bool LibJson::CJsonToken::CompactJson ( )
overridevirtualnoexcept

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

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

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

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

CJsonToken.cpp72 行目に定義があります。

参照先 LibCommon::CArray< Type >::CompactBuffer(), LibCommon::CString::CompactBuffer(), LibJson::CJson::CompactJson(), m_pcStringPointerList.

参照元 LibJson::CJsonPair::CompactJson().

72  {
73  // 処理ブロック
74  bool result = false;
75  do {
76  // JSONバリュー基底クラスをコンパクト化する
77  if ( !CJsonValue::CompactJson() ) {
78  // 失敗!
79  break;
80  }
81  // 文字列ストリーム基底クラスの文字列バッファサイズをコンパクト化する
82  else if ( !CStringStream::CompactBuffer() ) {
83  // 失敗!
84  break;
85  }
86  // 文字列ストリームポインタリストバッファサイズをコンパクト化する
87  else if ( !m_pcStringPointerList->CompactBuffer() ) {
88  // 失敗!
89  break;
90  }
91 
92  // 成功!
93  result = true;
94  } while ( false );
95 
96  // 実行結果を返す
97  return result;
98  }
CArray< int > * m_pcStringPointerList
文字列ストリームポインタリストポインタ
Definition: CJsonToken.h:312
virtual bool CompactBuffer() noexcept
バッファサイズコンパクト化関数
Definition: CString.cpp:348
virtual bool CompactJson() noexcept
JSONクラスコンパクト化関数
Definition: CJson.cpp:93
virtual bool CompactBuffer() noexcept
バッファサイズコンパクト化関数
Definition: CArray.hpp:297

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::OutputJson ( CStreamOut rcStreamOut)
overridevirtualnoexcept

JSONクラス出力関数

JSONクラス出力関数です。

引数
[in]rcStreamOut出力ストリーム参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバライド関数です。

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

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

CJsonToken.cpp102 行目に定義があります。

参照先 LibCommon::CString::GetBuffer().

102  {
103  // 処理ブロック
104  bool result = false;
105  do {
106  // 文字列バッファポインタを調べる
107  if ( nullptr == GetBuffer() ) {
108  // 失敗!
109  break;
110  }
111  // 文字列を出力する
112  else if ( !rcStreamOut.OutputString( GetBuffer() ) ) {
113  // 失敗!
114  break;
115  }
116 
117  // 成功!
118  result = true;
119  } while ( false );
120 
121  // 実行結果を返す
122  return result;
123  }
virtual wchar_t const * GetBuffer() const noexcept
文字列バッファ取得関数
Definition: CString.h:159

呼び出し関係図:

bool LibJson::CJsonToken::InputJsonChars ( CStream rcStream,
wchar_t const *  pszNgChars = nullptr 
)
virtualnoexcept

JSON文字集合入力関数

JSON文字集合入力関数です。

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

CJsonToken.cpp127 行目に定義があります。

参照先 InputJsonChar(), PopStreamPoints(), PushStreamPoints().

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

127  {
128  // 処理ブロック
129  bool result = false;
130  do {
131  // ストリームポインタをプッシュする
132  if ( !PushStreamPoints( rcStream ) ) {
133  // 失敗!
134  break;
135  }
136  // 処理ブロック
137  else do {
138  // 巡回する
139  for ( ;; ) {
140  // JSON文字を入力する
141  if ( !InputJsonChar( rcStream, pszNgChars ) ) {
142  // 終了!
143  break;
144  }
145 
146  // 1文字でも入力すれば成功!
147  result = true;
148  }
149  } while ( false );
150 
151  // ストリームポインタをポップする
152  PopStreamPoints( rcStream, !result );
153  } while ( false );
154 
155  // 実行結果を返す
156  return result;
157  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool InputJsonChar(CStream &rcStream, wchar_t const *pszNgChars=nullptr) noexcept
JSON文字入力関数
Definition: CJsonToken.cpp:161

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonChar ( CStream rcStream,
wchar_t const *  pszNgChars = nullptr 
)
virtualnoexcept

JSON文字入力関数

JSON文字入力関数です。

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

CJsonToken.cpp161 行目に定義があります。

参照先 LibCommon::CStringStream::OutputChar(), PopStreamPoints(), PushStreamPoints().

参照元 InputJsonChars().

161  {
162  // 処理ブロック
163  bool result = false;
164  do {
165  // ストリームポインタをプッシュする
166  if ( !PushStreamPoints( rcStream ) ) {
167  // 失敗!
168  break;
169  }
170  // 処理ブロック
171  else do {
172  // 1文字入力する
173  wchar_t ch;
174  if ( !rcStream.InputChar( ch ) ) {
175  // 失敗!
176  break;
177  }
178  // 入力禁止文字列ポインタを調べる
179  else if ( nullptr != pszNgChars ) {
180  // 文字コードを調べる
181  if ( nullptr != ::wcschr( pszNgChars, ch ) ) {
182  // 失敗!
183  break;
184  }
185  }
186 
187  // 1文字出力する
188  if ( !OutputChar( ch ) ) {
189  // 失敗!
190  break;
191  }
192  // 文字コードを調べる
193  else if ( ( L'\"' == ch ) || ( 0 != ::iswcntrl( ch ) ) ) {
194  // 失敗!
195  break;
196  }
197  // 文字コードを調べる
198  else if ( L'\\' == ch ) {
199  // 1文字入力する
200  if ( !rcStream.InputChar( ch ) ) {
201  // 失敗!
202  break;
203  }
204  // 1文字出力する
205  else if ( !OutputChar( ch ) ) {
206  // 失敗!
207  break;
208  }
209  // 文字コードを調べる
210  else if ( L'u' == ch ) {
211  // 巡回する
212  for ( int nCount = 4; 0 < nCount; --nCount ) {
213  // 1文字入力する
214  if ( !rcStream.InputChar( ch ) ) {
215  // 失敗!
216  break;
217  }
218  // 1文字出力する
219  else if ( !OutputChar( ch ) ) {
220  // 失敗!
221  break;
222  }
223  // 文字コードを調べる
224  else if ( nullptr != ::wcschr( L"0123456789ABCDEF", ::towupper( ch ) ) ) {
225  // 失敗!
226  break;
227  }
228  }
229  }
230  // 文字コードを調べる
231  else if ( nullptr == ::wcschr( L"\"\\/bfnrt", ch ) ) {
232  // 失敗!
233  break;
234  }
235  }
236 
237  // 成功!
238  result = true;
239  } while ( false );
240 
241  // ストリームポインタをポップする
242  PopStreamPoints( rcStream, !result );
243  } while ( false );
244 
245  // 実行結果を返す
246  return result;
247  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool OutputChar(wchar_t ch) noexcept override
1文字出力関数

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonInt ( CStream rcStream)
virtualnoexcept

JSON整数部入力関数

JSON整数部入力関数です。

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

CJsonToken.cpp251 行目に定義があります。

参照先 GetLastChar(), InputJsonDigit(), InputJsonDigits(), InputJsonFixedChar(), PopStreamPoints(), PushStreamPoints().

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

251  {
252  // 処理ブロック
253  bool result = false;
254  do {
255  // ストリームポインタをプッシュする
256  if ( !PushStreamPoints( rcStream ) ) {
257  // 失敗!
258  break;
259  }
260  // 処理ブロック
261  else do {
262  // JSON固定文字を入力する
263  InputJsonFixedChar( rcStream, L'-', false );
264 
265  // JSON数字を入力する
266  if ( !InputJsonDigit( rcStream ) ) {
267  // 失敗!
268  break;
269  }
270 
271  // 1文字でも成功!
272  result = true;
273 
274  // 文字コードを調べる
275  if ( L'0' != GetLastChar() ) {
276  // JSON数字集合を入力する
277  InputJsonDigits( rcStream );
278  }
279  } while ( false );
280 
281  // ストリームポインタをポップする
282  PopStreamPoints( rcStream, !result );
283  } while ( false );
284 
285  // 実行結果を返す
286  return result;
287  }
virtual wchar_t GetLastChar() noexcept
最後尾文字取得関数
Definition: CJsonToken.cpp:579
virtual bool InputJsonDigit(CStream &rcStream) noexcept
JSON数字入力関数
Definition: CJsonToken.cpp:434
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool InputJsonFixedChar(CStream &rcStream, wchar_t ch, bool bIgnore=false) noexcept
JSON固定文字入力関数
Definition: CJsonToken.cpp:476
virtual bool InputJsonDigits(CStream &rcStream) noexcept
JSON数字集合入力関数
Definition: CJsonToken.cpp:400

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonFrac ( CStream rcStream)
virtualnoexcept

JSON小数部入力関数

JSON小数部入力関数です。

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

CJsonToken.cpp291 行目に定義があります。

参照先 InputJsonDigits(), InputJsonFixedChar(), PopStreamPoints(), PushStreamPoints().

291  {
292  // 処理ブロック
293  bool result = false;
294  do {
295  // ストリームポインタをプッシュする
296  if ( !PushStreamPoints( rcStream ) ) {
297  // 失敗!
298  break;
299  }
300  // 処理ブロック
301  else do {
302  // JSON固定文字を入力する
303  if ( !InputJsonFixedChar( rcStream, L'.', false ) ) {
304  // 失敗!
305  break;
306  }
307  // JSON数字集合を入力する
308  else if ( !InputJsonDigits( rcStream ) ) {
309  // 失敗!
310  break;
311  }
312 
313  // 成功!
314  result = true;
315  } while ( false );
316 
317  // ストリームポインタをポップする
318  PopStreamPoints( rcStream, !result );
319  } while ( false );
320 
321  // 実行結果を返す
322  return result;
323  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool InputJsonFixedChar(CStream &rcStream, wchar_t ch, bool bIgnore=false) noexcept
JSON固定文字入力関数
Definition: CJsonToken.cpp:476
virtual bool InputJsonDigits(CStream &rcStream) noexcept
JSON数字集合入力関数
Definition: CJsonToken.cpp:400

呼び出し関係図:

bool LibJson::CJsonToken::InputJsonExp ( CStream rcStream)
virtualnoexcept

JSON指数部入力関数

JSON指数部入力関数です。

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

CJsonToken.cpp327 行目に定義があります。

参照先 InputJsonDigits(), InputJsonExpHeader(), PopStreamPoints(), PushStreamPoints().

327  {
328  // 処理ブロック
329  bool result = false;
330  do {
331  // ストリームポインタをプッシュする
332  if ( !PushStreamPoints( rcStream ) ) {
333  // 失敗!
334  break;
335  }
336  // 処理ブロック
337  else do {
338  // JSON指数部ヘッダを入力する
339  if ( !InputJsonExpHeader( rcStream ) ) {
340  // 失敗!
341  break;
342  }
343  // JSON数字集合を入力する
344  else if ( !InputJsonDigits( rcStream ) ) {
345  // 失敗!
346  break;
347  }
348 
349  // 成功!
350  result = true;
351  } while ( false );
352 
353  // ストリームポインタをポップする
354  PopStreamPoints( rcStream, !result );
355  } while ( false );
356 
357  // 実行結果を返す
358  return result;
359  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool InputJsonExpHeader(CStream &rcStream) noexcept
JSON指数部ヘッダ入力関数
Definition: CJsonToken.cpp:363
virtual bool InputJsonDigits(CStream &rcStream) noexcept
JSON数字集合入力関数
Definition: CJsonToken.cpp:400

呼び出し関係図:

bool LibJson::CJsonToken::InputJsonExpHeader ( CStream rcStream)
virtualnoexcept

JSON指数部ヘッダ入力関数

JSON指数部ヘッダ入力関数です。

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

CJsonToken.cpp363 行目に定義があります。

参照先 InputJsonFixedChar(), PopStreamPoints(), PushStreamPoints().

参照元 InputJsonExp().

363  {
364  // 処理ブロック
365  bool result = false;
366  do {
367  // ストリームポインタをプッシュする
368  if ( !PushStreamPoints( rcStream ) ) {
369  // 失敗!
370  break;
371  }
372  // 処理ブロック
373  else do {
374  // JSON固定文字を入力する
375  if ( !InputJsonFixedChar( rcStream, L'e', true ) ) {
376  // 失敗!
377  break;
378  }
379 
380  // 1文字でも成功!
381  result = true;
382 
383  // JSON固定文字を入力する
384  if ( !InputJsonFixedChar( rcStream, L'+' ) ) {
385  // JSON固定文字を入力する
386  InputJsonFixedChar( rcStream, L'-' );
387  }
388  } while ( false );
389 
390  // ストリームポインタをポップする
391  PopStreamPoints( rcStream, !result );
392  } while ( false );
393 
394  // 実行結果を返す
395  return result;
396  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool InputJsonFixedChar(CStream &rcStream, wchar_t ch, bool bIgnore=false) noexcept
JSON固定文字入力関数
Definition: CJsonToken.cpp:476

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonDigits ( CStream rcStream)
virtualnoexcept

JSON数字集合入力関数

JSON数字集合入力関数です。

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

CJsonToken.cpp400 行目に定義があります。

参照先 InputJsonDigit(), PopStreamPoints(), PushStreamPoints().

参照元 InputJsonExp(), InputJsonFrac(), InputJsonInt().

400  {
401  // 処理ブロック
402  bool result = false;
403  do {
404  // ストリームポインタをプッシュする
405  if ( !PushStreamPoints( rcStream ) ) {
406  // 失敗!
407  break;
408  }
409  // 処理ブロック
410  else do {
411  // 巡回する
412  for ( ;; ) {
413  // JSON数字を入力する
414  if ( !InputJsonDigit( rcStream ) ) {
415  // 終了!
416  break;
417  }
418 
419  // 1文字でも入力すれば成功!
420  result = true;
421  }
422  } while ( false );
423 
424  // ストリームポインタをポップする
425  PopStreamPoints( rcStream, !result );
426  } while ( false );
427 
428  // 実行結果を返す
429  return result;
430  }
virtual bool InputJsonDigit(CStream &rcStream) noexcept
JSON数字入力関数
Definition: CJsonToken.cpp:434
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonDigit ( CStream rcStream)
virtualnoexcept

JSON数字入力関数

JSON数字入力関数です。

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

CJsonToken.cpp434 行目に定義があります。

参照先 LibCommon::CStringStream::OutputChar(), PopStreamPoints(), PushStreamPoints().

参照元 InputJsonDigits(), InputJsonInt().

434  {
435  // 処理ブロック
436  bool result = false;
437  do {
438  // ストリームポインタをプッシュする
439  if ( !PushStreamPoints( rcStream ) ) {
440  // 失敗!
441  break;
442  }
443  // 処理ブロック
444  else do {
445  // 1文字入力する
446  wchar_t ch;
447  if ( !rcStream.InputChar( ch ) ) {
448  // 失敗!
449  break;
450  }
451  // 1文字出力する
452  else if ( !OutputChar( ch ) ) {
453  // 失敗!
454  break;
455  }
456  // 文字コードを調べる
457  else if ( nullptr == ::wcschr( L"0123456789", ch ) ) {
458  // 失敗!
459  break;
460  }
461 
462  // 成功!
463  result = true;
464  } while ( false );
465 
466  // ストリームポインタをポップする
467  PopStreamPoints( rcStream, !result );
468  } while ( false );
469 
470  // 実行結果を返す
471  return result;
472  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool OutputChar(wchar_t ch) noexcept override
1文字出力関数

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonFixedChar ( CStream rcStream,
wchar_t  ch,
bool  bIgnore = false 
)
virtualnoexcept

JSON固定文字入力関数

JSON固定文字入力関数です。

引数
[in]rcStream入力ストリーム参照
[in]ch文字コード
[in]bIgnore大小文字無視フラグ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CJsonToken.cpp476 行目に定義があります。

参照先 LibCommon::CStringStream::OutputChar(), PopStreamPoints(), PushStreamPoints().

参照元 InputJsonExpHeader(), InputJsonFrac(), InputJsonInt().

476  {
477  // 処理ブロック
478  bool result = false;
479  do {
480  // ストリームポインタをプッシュする
481  if ( !PushStreamPoints( rcStream ) ) {
482  // 失敗!
483  break;
484  }
485  // 処理ブロック
486  else do {
487  // 1文字入力する
488  wchar_t ch2;
489  if ( !rcStream.InputChar( ch2 ) ) {
490  // 失敗!
491  break;
492  }
493  // 1文字出力する
494  else if ( !OutputChar( ch2 ) ) {
495  // 失敗!
496  break;
497  }
498  // 大小文字無視フラグを調べる
499  else if ( bIgnore ) {
500  // 大文字に統一する
501  ch = ::towupper( ch );
502  ch2 = ::towupper( ch2 );
503  }
504 
505  // 文字コードを調べる
506  if ( ch != ch2 ) {
507  // 失敗!
508  break;
509  }
510 
511  // 成功!
512  result = true;
513  } while ( false );
514 
515  // ストリームポインタをポップする
516  PopStreamPoints( rcStream, !result );
517  } while ( false );
518 
519  // 実行結果を返す
520  return result;
521  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool OutputChar(wchar_t ch) noexcept override
1文字出力関数

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::InputJsonFixedString ( CStream rcStream,
wchar_t const *  pszString 
)
virtualnoexcept

JSON固定文字列入力関数

JSON固定文字列入力関数です。

引数
[in]rcStreamストリーム参照
[in]pszString文字列ポインタ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CJsonToken.cpp525 行目に定義があります。

参照先 LibCommon::CStringStream::OutputChar(), PopStreamPoints(), PushStreamPoints().

525  {
526  // 処理ブロック
527  bool result = false;
528  do {
529  // 文字列ポインタを調べる
530  if ( nullptr == pszString ) {
531  // 失敗!
532  break;
533  }
534  // ストリームポインタをプッシュする
535  else if ( !PushStreamPoints( rcStream ) ) {
536  // 失敗!
537  break;
538  }
539  // 処理ブロック
540  else do {
541  // 巡回する
542  for ( ;; ++pszString ) {
543  // 文字コードを調べる
544  if ( L'\0' == *pszString ) {
545  // 成功!
546  result = true;
547  break;
548  }
549 
550  // 1文字入力する
551  wchar_t ch;
552  if ( !rcStream.InputChar( ch ) ) {
553  // 失敗!
554  break;
555  }
556  // 1文字出力する
557  else if ( !OutputChar( ch ) ) {
558  // 失敗!
559  break;
560  }
561  // 文字コードを調べる
562  else if ( *pszString != ch ) {
563  // 失敗!
564  break;
565  }
566  }
567  } while ( false );
568 
569  // ストリームポインタをポップする
570  PopStreamPoints( rcStream, !result );
571  } while ( false );
572 
573  // 実行結果を返す
574  return result;
575  }
virtual bool PushStreamPoints(CStream &rcStream) noexcept
ストリームポインタプッシュ関数
Definition: CJsonToken.cpp:599
virtual bool PopStreamPoints(CStream &rcStream, bool bResume) noexcept
ストリームポインタポップ関数
Definition: CJsonToken.cpp:627
virtual bool OutputChar(wchar_t ch) noexcept override
1文字出力関数

呼び出し関係図:

wchar_t LibJson::CJsonToken::GetLastChar ( )
virtualnoexcept

最後尾文字取得関数

最後尾文字取得関数です。

引数
なし
戻り値
文字コード
注意
なし

CJsonToken.cpp579 行目に定義があります。

参照先 LibCommon::CString::GetCount().

参照元 InputJsonInt().

579  {
580  // 処理ブロック
581  wchar_t result = L'\0';
582  do {
583  // 文字数を調べる
584  if ( 0 >= GetCount() ) {
585  // 失敗!
586  break;
587  }
588 
589  // 最後尾文字を取得する
590  result = ( *this )[ GetCount() - 1 ];
591  } while ( false );
592 
593  // 実行結果を返す
594  return result;
595  }
virtual int GetCount() const noexcept
文字数取得関数
Definition: CString.h:181

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::PushStreamPoints ( CStream rcStream)
virtualnoexcept

ストリームポインタプッシュ関数

ストリームポインタプッシュ関数です。

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

CJsonToken.cpp599 行目に定義があります。

参照先 LibJson::CJson::m_pcInputPointerList, m_pcStringPointerList, LibCommon::CStream::PopStreamPoint(), LibCommon::CStream::PushStreamPoint().

参照元 InputJsonChar(), InputJsonChars(), InputJsonDigit(), InputJsonDigits(), InputJsonExp(), InputJsonExpHeader(), InputJsonFixedChar(), InputJsonFixedString(), InputJsonFrac(), InputJsonInt().

599  {
600  // 処理ブロック
601  bool result = false;
602  do {
603  // 入力ストリームポインタをプッシュする
604  if ( !rcStream.PushStreamPoint( m_pcInputPointerList ) ) {
605  // 失敗!
606  break;
607  }
608  // 文字列ストリームポインタをプッシュする
609  else if ( !PushStreamPoint( m_pcStringPointerList ) ) {
610  // 入力ストリームポインタをポップする
612 
613  // 失敗!
614  break;
615  }
616 
617  // 成功!
618  result = true;
619  } while ( false );
620 
621  // 実行結果を返す
622  return result;
623  }
CArray< int > * m_pcStringPointerList
文字列ストリームポインタリストポインタ
Definition: CJsonToken.h:312
virtual bool PopStreamPoint(CArray< int > *pcPointerList, bool bResume) noexcept
ストリームポインタポップ数
Definition: CStream.cpp:214
CArray< int > * m_pcInputPointerList
入力ストリームポインタリストポインタ
Definition: CJson.h:238
virtual bool PushStreamPoint(CArray< int > *pcPointerList) noexcept
ストリームポインタプッシュ関数
Definition: CStream.cpp:191

呼び出し関係図:

被呼び出し関係図:

bool LibJson::CJsonToken::PopStreamPoints ( CStream rcStream,
bool  bResume 
)
virtualnoexcept

ストリームポインタポップ関数

ストリームポインタポップ関数です。

引数
[in]rcStream入力ストリーム参照
[in]bResumeポインタ復元フラグ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
なし

CJsonToken.cpp627 行目に定義があります。

参照先 LibJson::CJson::m_pcInputPointerList, m_pcStringPointerList, LibCommon::CStream::PopStreamPoint(), LibCommon::CStringStream::SetStreamEnd().

参照元 InputJsonChar(), InputJsonChars(), InputJsonDigit(), InputJsonDigits(), InputJsonExp(), InputJsonExpHeader(), InputJsonFixedChar(), InputJsonFixedString(), InputJsonFrac(), InputJsonInt().

627  {
628  // 処理ブロック
629  bool result = false;
630  do {
631  // 文字列ストリームポインタをポップする
632  if ( !PopStreamPoint( m_pcStringPointerList, bResume ) ) {
633  // 入力ストリームポインタをポップする
634  rcStream.PopStreamPoint( m_pcInputPointerList, bResume );
635 
636  // 失敗!
637  break;
638  }
639  // ポインタ復元フラグを調べる
640  else if ( bResume ) {
641  // 文字列ストリーム終端ポインタを設定する
642  SetStreamEnd();
643  }
644 
645  // 入力ストリームポインタをポップする
646  if ( !rcStream.PopStreamPoint( m_pcInputPointerList, bResume ) ) {
647  // 失敗!
648  break;
649  }
650 
651  // 成功!
652  result = true;
653  } while ( false );
654 
655  // 実行結果を返す
656  return result;
657  }
virtual bool SetStreamEnd() noexcept override
ストリーム終端設定関数
CArray< int > * m_pcStringPointerList
文字列ストリームポインタリストポインタ
Definition: CJsonToken.h:312
virtual bool PopStreamPoint(CArray< int > *pcPointerList, bool bResume) noexcept
ストリームポインタポップ数
Definition: CStream.cpp:214
CArray< int > * m_pcInputPointerList
入力ストリームポインタリストポインタ
Definition: CJson.h:238

呼び出し関係図:

被呼び出し関係図:

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

メンバ詳解

CArray< int >* LibJson::CJsonToken::m_pcStringPointerList
protected

文字列ストリームポインタリストポインタ

CJsonToken.h312 行目に定義があります。

参照元 ClearJson(), CompactJson(), PopStreamPoints(), PushStreamPoints(), ~CJsonToken().


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