Solution46
LibJson::CJsonConfigAuto クラス

JSON構成情報自動セクションブロッククラス [詳解]

#include "CJsonConfigAuto.h"

LibJson::CJsonConfigAuto 連携図
Collaboration graph

公開メンバ関数

 CJsonConfigAuto (CJsonConfig &rcConfig, wchar_t const *pszSection, int nIndex, wchar_t const *pszPath, bool bClear=false) noexcept
 コンストラクタ [詳解]
 
 CJsonConfigAuto (CJsonConfig &rcConfig, wchar_t const *pszSection, wchar_t const *pszPath, bool bClear=false) noexcept
 コンストラクタ [詳解]
 
 CJsonConfigAuto (CJsonConfig &rcConfig, wchar_t const *pszSection, int nIndex, bool bClear=false) noexcept
 コンストラクタ [詳解]
 
 CJsonConfigAuto (CJsonConfig &rcConfig, wchar_t const *pszSection, bool bClear=false) noexcept
 コンストラクタ [詳解]
 
virtual ~CJsonConfigAuto () noexcept
 デストラクタ [詳解]
 
virtual bool GetResult () noexcept
 実行結果取得関数 [詳解]
 

限定公開変数類

CJsonConfigm_rcConfig
 JSON構成情報参照 [詳解]
 
CString m_cCurrPath
 JSONカレントパス [詳解]
 
bool m_bResult
 実行結果 [詳解]
 

非公開メンバ関数

 CJsonConfigAuto (CJsonConfigAuto const &)=delete
 
CJsonConfigAutooperator= (CJsonConfigAuto const &)=delete
 

詳解

JSON構成情報自動セクションブロッククラス

JSON構成情報自動セクションブロッククラスです。

注意
なし

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

構築子と解体子

LibJson::CJsonConfigAuto::CJsonConfigAuto ( CJsonConfig rcConfig,
wchar_t const *  pszSection,
int  nIndex,
wchar_t const *  pszPath,
bool  bClear = false 
)
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]rcConfigJSON構成情報参照
[in]pszSectionセクション文字列
[in]nIndexセクションインデックス
[in]pszPathJSONパス文字列
[in]bClearセクションクリアフラグ
戻り値
なし
注意
なし

CJsonConfigAuto.cpp28 行目に定義があります。

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

30  : m_rcConfig( rcConfig )
31  , m_cCurrPath()
32  , m_bResult( false )
33  {
34  // 処理ブロック
35  do {
36  // 空か調べる
37  if ( m_rcConfig.IsEmpty() ) {
38  // JSONドキュメントを初期化する
39  if ( !m_rcConfig.SetCurrentSetValue( L"{}" ) ) {
40  // 失敗!
41  break;
42  }
43  }
44 
45  // カレントJSONパスを取得する
47  // 失敗!
48  break;
49  }
50  // JSONパス文字列ポインタを調べる
51  else if ( nullptr != pszPath ) {
52  // カレントJSONパスを設定する
53  if ( !m_rcConfig.SetCurrentPath( pszPath ) ) {
54  // JSONパスを作成する
55  if ( !m_rcConfig.CreatePath( pszPath ) ) {
56  // 失敗!
57  break;
58  }
59  // カレントJSONパスを設定する
60  else if ( !m_rcConfig.SetCurrentPath( pszPath ) ) {
61  // 失敗!
62  break;
63  }
64  }
65  }
66 
67  // セクションインデックスを調べる
68  CString cSection( pszSection );
69  if ( 0 <= nIndex ) {
70  // インデックスを追加する
71  cSection += CString().Format( L"[%d]", nIndex );
72  }
73 
74  // JSONパスを検索する
75  CJson* pcJson = m_rcConfig.FindJsonPath( cSection, m_rcConfig.GetCurrentJson() );
76  if ( nullptr == pcJson ) {
77  // JSONパスを作成する
78  if ( !m_rcConfig.CreatePath( cSection ) ) {
79  // 失敗!
80  break;
81  }
82  }
83 
84  // カレントパスを設定する
85  if ( !m_rcConfig.SetCurrentPath( cSection ) ) {
86  // 失敗!
87  break;
88  }
89  // セクションクリアフラグを調べる
90  else if ( bClear ) {
91  // セクションデータを初期化する
92  if ( !m_rcConfig.SetCurrentSetValue( L"null" ) ) {
93  // 失敗!
94  break;
95  }
96  }
97 
98  // 成功!
99  m_bResult = true;
100  } while ( false );
101  }
CString m_cCurrPath
JSONカレントパス
bool m_bResult
実行結果
virtual bool GetCurrentPath(CString &rcPath) noexcept
カレントパス取得関数
virtual bool CreatePath(wchar_t const *pszPath) noexcept
JSONパス作成関数
static CJson * FindJsonPath(wchar_t const *pszPath, CJson *pcJson) noexcept
JSONパス検索関数
CJsonConfig & m_rcConfig
JSON構成情報参照
virtual bool SetCurrentSetValue(wchar_t const *pszValue) noexcept
カレント設定値文字列設定関数
virtual CJson * GetCurrentJson() noexcept
カレントJSONクラス取得関数
virtual bool SetCurrentPath(wchar_t const *pszPath) noexcept
カレントパス設定関数
virtual bool IsEmpty() noexcept
空状態取得関数
Definition: CJsonDocument.h:72

呼び出し関係図:

LibJson::CJsonConfigAuto::CJsonConfigAuto ( CJsonConfig rcConfig,
wchar_t const *  pszSection,
wchar_t const *  pszPath,
bool  bClear = false 
)
inlineexplicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]rcConfigJSON構成情報参照
[in]pszSectionセクション文字列
[in]pszPathJSONパス文字列
[in]bClearセクションクリアフラグ
戻り値
なし
注意
なし

CJsonConfigAuto.h61 行目に定義があります。

62  : CJsonConfigAuto( rcConfig, pszSection, -1, pszPath, bClear ) {}
CJsonConfigAuto(CJsonConfig &rcConfig, wchar_t const *pszSection, int nIndex, wchar_t const *pszPath, bool bClear=false) noexcept
コンストラクタ
LibJson::CJsonConfigAuto::CJsonConfigAuto ( CJsonConfig rcConfig,
wchar_t const *  pszSection,
int  nIndex,
bool  bClear = false 
)
inlineexplicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]rcConfigJSON構成情報参照
[in]pszSectionセクション文字列
[in]nIndexセクションインデックス
[in]bClearセクションクリアフラグ
戻り値
なし
注意
なし

CJsonConfigAuto.h76 行目に定義があります。

77  : CJsonConfigAuto( rcConfig, pszSection, nIndex, nullptr, bClear ) {}
CJsonConfigAuto(CJsonConfig &rcConfig, wchar_t const *pszSection, int nIndex, wchar_t const *pszPath, bool bClear=false) noexcept
コンストラクタ
LibJson::CJsonConfigAuto::CJsonConfigAuto ( CJsonConfig rcConfig,
wchar_t const *  pszSection,
bool  bClear = false 
)
inlineexplicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]rcConfigJSON構成情報参照
[in]pszSectionセクション文字列
[in]bClearセクションクリアフラグ
戻り値
なし
注意
なし

CJsonConfigAuto.h90 行目に定義があります。

91  : CJsonConfigAuto( rcConfig, pszSection, -1, nullptr, bClear ) {}
CJsonConfigAuto(CJsonConfig &rcConfig, wchar_t const *pszSection, int nIndex, wchar_t const *pszPath, bool bClear=false) noexcept
コンストラクタ
LibJson::CJsonConfigAuto::~CJsonConfigAuto ( )
virtualnoexcept

デストラクタ

デストラクタです。

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

CJsonConfigAuto.cpp105 行目に定義があります。

参照先 LibJson::CJsonDocument::DeleteCurrentJson(), LibJson::CJsonDocument::GetCurrentSetValue(), m_bResult, m_cCurrPath, m_rcConfig, LibJson::CJsonDocument::SetCurrentPath().

105  {
106  // 実行結果を調べる
107  if ( m_bResult ) {
108  // カレントJSON設定値を取得する
109  CString cValue;
110  if ( m_rcConfig.GetCurrentSetValue( cValue ) ) {
111  // カレントJSON設定値を調べる
112  if ( ( 0 == ::wcscmp( L"null", cValue ) ) || ( 0 == ::wcscmp( L"{}", cValue ) ) ) {
113  // カレントJSONクラスを削除する
115  }
116  }
117 
118  // カレントJSONパスを復元する
120  }
121  }
virtual bool GetCurrentSetValue(CString &rcValue, bool bClassName=false, bool bQuotes=true) noexcept
カレント設定値文字列取得関数
CString m_cCurrPath
JSONカレントパス
bool m_bResult
実行結果
virtual bool DeleteCurrentJson() noexcept
カレントJSONクラス削除関数
CJsonConfig & m_rcConfig
JSON構成情報参照
virtual bool SetCurrentPath(wchar_t const *pszPath) noexcept
カレントパス設定関数

呼び出し関係図:

LibJson::CJsonConfigAuto::CJsonConfigAuto ( CJsonConfigAuto const &  )
privatedelete

関数詳解

virtual bool LibJson::CJsonConfigAuto::GetResult ( )
inlinevirtualnoexcept

実行結果取得関数

実行結果取得関数です。

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

CJsonConfigAuto.h118 行目に定義があります。

118 { return m_bResult; }
bool m_bResult
実行結果
CJsonConfigAuto& LibJson::CJsonConfigAuto::operator= ( CJsonConfigAuto const &  )
privatedelete

メンバ詳解

CJsonConfig& LibJson::CJsonConfigAuto::m_rcConfig
protected

JSON構成情報参照

CJsonConfigAuto.h123 行目に定義があります。

参照元 ~CJsonConfigAuto().

CString LibJson::CJsonConfigAuto::m_cCurrPath
protected

JSONカレントパス

CJsonConfigAuto.h124 行目に定義があります。

参照元 ~CJsonConfigAuto().

bool LibJson::CJsonConfigAuto::m_bResult
protected

実行結果

CJsonConfigAuto.h125 行目に定義があります。

参照元 ~CJsonConfigAuto().


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