Solution46
LibCommon::CStringStream クラス

文字列ストリームクラス [詳解]

#include "CStringStream.h"

LibCommon::CStringStream の継承関係図
Inheritance graph
LibCommon::CStringStream 連携図
Collaboration graph

公開メンバ関数

 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
 拡張引数リスト文字列行出力関数 [詳解]
 

限定公開メンバ関数

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
 デストラクタ [詳解]
 

限定公開変数類

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

非公開メンバ関数

 CStringStream (CStringStream const &)=delete
 
CStringStreamoperator= (CStringStream const &)=delete
 

その他の継承メンバ

- 基底クラス LibCommon::CString に属する継承静的公開変数類
static int const SEGMENT_SIZE = 256
 セグメントサイズ初期値 [詳解]
 
- 基底クラス LibCommon::CStreamOut に属する継承静的限定公開変数類
static int const FORMAT_BUFFER_SIZE = ( 2048 - 1 )
 書式設定文字列バッファサイズ [詳解]
 

詳解

文字列ストリームクラス

文字列ストリームクラスです。

注意
なし

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

構築子と解体子

LibCommon::CStringStream::CStringStream ( wchar_t const *  pszString = nullptr)
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
[in]pszString文字列ポインタ
戻り値
なし
注意
なし

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

34  : CString( pszString )
35  , CStream()
36  // メンバ変数初期化
37  , m_nStreamPoint( 0 )
38  {}
CStream() noexcept
コンストラクタ
Definition: CStream.cpp:33
CString() noexcept
コンストラクタ
Definition: CString.cpp:30
int m_nStreamPoint
ストリームポインタ
LibCommon::CStringStream::~CStringStream ( )
virtualnoexcept

デストラクタ

デストラクタです。

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

CStringStream.cpp42 行目に定義があります。

参照先 Clear().

42  {
43  // クリアする
44  Clear();
45  }
virtual void Clear() noexcept override
クリア関数

呼び出し関係図:

LibCommon::CStringStream::CStringStream ( CStringStream const &  )
privatedelete

関数詳解

void LibCommon::CStringStream::Clear ( )
overridevirtualnoexcept

クリア関数

クリア関数です。

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

LibCommon::CStringを再実装しています。

CStringStream.cpp51 行目に定義があります。

参照先 LibCommon::CString::Clear(), m_nStreamPoint.

参照元 LibJson::CJsonToken::ClearJson(), ~CStringStream().

51  {
52  // 基底クラスの関数を実行する
54 
55  // メンバ変数を初期化する
56  m_nStreamPoint = 0;
57  }
int m_nStreamPoint
ストリームポインタ
virtual void Clear() noexcept
クリア関数
Definition: CString.cpp:263

呼び出し関係図:

被呼び出し関係図:

bool LibCommon::CStringStream::OutputChar ( wchar_t  ch)
overridevirtualnoexcept

1文字出力関数

1文字出力関数です。

引数
[in]ch文字コード
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバーライド関数です。

LibCommon::CStreamOutを再実装しています。

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

参照先 LibCommon::CString::Insert(), LibCommon::CString::m_nCount, m_nStreamPoint, LibCommon::CString::Push().

参照元 LibJson::CJsonToken::InputJsonChar(), LibJson::CJsonToken::InputJsonDigit(), LibJson::CJsonToken::InputJsonFixedChar(), LibJson::CJsonToken::InputJsonFixedString(), OutputString().

61  {
62  // 処理ブロック
63  bool result = false;
64  do {
65  // ストリームポインタを調べる
66  if ( m_nCount > m_nStreamPoint ) {
67  // 1文字追加する
68  if ( !Push( ch ) ) {
69  // 失敗!
70  break;
71  }
72  }
73  else {
74  // 1文字挿入する
75  if ( !Insert( m_nStreamPoint, ch ) ) {
76  // 失敗!
77  break;
78  }
79  }
80 
81  // ストリームポインタを更新する
83 
84  // 成功!
85  result = true;
86  } while ( false );
87 
88  // 実行結果を返す
89  return result;
90  }
virtual bool Push(wchar_t const &rChar) noexcept
プッシュ関数
Definition: CString.cpp:838
virtual bool Insert(int nIndex, CString const &rcInstance) noexcept
挿入関数
Definition: CString.cpp:517
int m_nStreamPoint
ストリームポインタ
int m_nCount
要素数
Definition: CString.h:918

呼び出し関係図:

被呼び出し関係図:

bool LibCommon::CStringStream::OutputString ( wchar_t const *  pszString)
overridevirtualnoexcept

文字列出力関数

文字列出力関数です。

引数
[in]pszString文字列ポインタ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバーライド関数です。

LibCommon::CStreamOutを実装しています。

CStringStream.cpp94 行目に定義があります。

参照先 OutputChar().

94  {
95  // 処理ブロック
96  bool result = false;
97  do {
98  // 文字列ポインタを調べる
99  if ( nullptr == pszString ) {
100  // 失敗!
101  break;
102  }
103  // 巡回する
104  else for ( ;; ) {
105  // 文字コードを調べる
106  if ( L'\0' == *pszString ) {
107  // 成功!
108  result = true;
109  break;
110  }
111  // 1文字出力する
112  else if ( !OutputChar( *pszString++ ) ) {
113  // 失敗!
114  break;
115  }
116  }
117  } while ( false );
118 
119  // 実行結果を返す
120  return result;
121  }
virtual bool OutputChar(wchar_t ch) noexcept override
1文字出力関数

呼び出し関係図:

bool LibCommon::CStringStream::InputChar ( wchar_t &  rCh)
overridevirtualnoexcept

1文字入力関数

1文字入力関数です。

引数
[out]rCh文字コード参照
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバーライド関数です。

LibCommon::CStreamを実装しています。

CStringStream.cpp125 行目に定義があります。

参照先 LibCommon::CString::m_nCount, m_nStreamPoint, LibCommon::CString::m_pszBuffer.

125  {
126  // 処理ブロック
127  bool result = false;
128  do {
129  // ストリームポインタを調べる
130  if ( m_nCount <= m_nStreamPoint ) {
131  // 失敗!
132  break;
133  }
134 
135  // 1文字取得する
136  rCh = m_pszBuffer[ m_nStreamPoint++ ];
137 
138  // 成功!
139  result = true;
140  } while ( false );
141 
142  // 実行結果を返す
143  return result;
144  }
wchar_t * m_pszBuffer
文字列ポインタ
Definition: CString.h:916
int m_nStreamPoint
ストリームポインタ
int m_nCount
要素数
Definition: CString.h:918
virtual int LibCommon::CStringStream::GetStreamSize ( ) const
inlineoverridevirtualnoexcept

ストリームサイズ取得関数

ストリームサイズ取得関数です。

引数
なし
戻り値
ストリームサイズ
注意
オーバライド関数です。

LibCommon::CStreamを再実装しています。

CStringStream.h119 行目に定義があります。

119 { return GetCount(); }
virtual int GetCount() const noexcept
文字数取得関数
Definition: CString.h:181
virtual int LibCommon::CStringStream::GetStreamPoint ( ) const
inlineoverridevirtualnoexcept

ストリームポインタ取得関数

ストリームポインタ取得関数です。

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

LibCommon::CStreamを再実装しています。

CStringStream.h130 行目に定義があります。

130 { return m_nStreamPoint; }
int m_nStreamPoint
ストリームポインタ
virtual bool LibCommon::CStringStream::SetStreamPoint ( int  nPoint)
inlineoverridevirtualnoexcept

ストリームポインタ設定関数

ストリームポインタ設定関数です。

引数
[in]nPointストリームポインタ
戻り値
実行結果
  • true 成功
  • false 失敗
注意
オーバライド関数です。

LibCommon::CStreamを再実装しています。

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

143 { return UpdateStreamPoint( nPoint ); }
virtual bool UpdateStreamPoint(int nPoint) noexcept
ストリームポインタ更新関数
virtual bool LibCommon::CStringStream::SetStreamEnd ( )
inlineoverridevirtualnoexcept

ストリーム終端設定関数

ストリーム終端設定関数です。

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

LibCommon::CStreamを再実装しています。

CStringStream.h156 行目に定義があります。

参照元 LibJson::CJsonToken::PopStreamPoints().

156 { return UpdateEndPoint( m_nStreamPoint ); }
int m_nStreamPoint
ストリームポインタ
virtual bool UpdateEndPoint(int nPoint) noexcept
終端ストリームポインタ更新関数

被呼び出し関係図:

bool LibCommon::CStringStream::UpdateStreamPoint ( int  nPoint)
protectedvirtualnoexcept

ストリームポインタ更新関数

ストリームポインタ更新関数です。

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

CStringStream.cpp150 行目に定義があります。

参照先 LibCommon::CString::m_nCount, m_nStreamPoint, UpdateEndPoint().

150  {
151  // 処理ブロック
152  bool result = false;
153  do {
154  // ストリームポインタを調べる
155  if ( m_nCount < nPoint ) {
156  // 終端ストリームポインタを更新する
157  if ( !UpdateEndPoint( nPoint ) ) {
158  // 失敗!
159  break;
160  }
161  }
162 
163  // ストリームポインタを設定する
164  m_nStreamPoint = nPoint;
165 
166  // 成功!
167  result = true;
168  } while ( false );
169 
170  // 実行結果を返す
171  return result;
172  }
int m_nStreamPoint
ストリームポインタ
virtual bool UpdateEndPoint(int nPoint) noexcept
終端ストリームポインタ更新関数
int m_nCount
要素数
Definition: CString.h:918

呼び出し関係図:

bool LibCommon::CStringStream::UpdateEndPoint ( int  nPoint)
protectedvirtualnoexcept

終端ストリームポインタ更新関数

終端ストリームポインタ更新関数です。

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

CStringStream.cpp176 行目に定義があります。

参照先 LibCommon::CString::m_nCount, LibCommon::CString::m_pszBuffer, LibCommon::CString::UpdateBuffer().

参照元 UpdateStreamPoint().

176  {
177  // 処理ブロック
178  bool result = false;
179  do {
180  // バッファサイズを更新する
181  if ( !UpdateBuffer( nPoint ) ) {
182  // 失敗!
183  break;
184  }
185  // 巡回する
186  else for ( int nIndex = m_nCount; nPoint > nIndex; ++nIndex ) {
187  // 空白文字を設定する
188  m_pszBuffer[ nIndex ] = L' ';
189  }
190 
191  // 文字数を設定する
192  m_nCount = nPoint;
193 
194  // バッファポインタを調べる
195  if ( nullptr != m_pszBuffer ) {
196  // 終端文字を設定する
197  m_pszBuffer[ nPoint ] = L'\0';
198  }
199 
200  // 成功!
201  result = true;
202  } while ( false );
203 
204  // 実行結果を返す
205  return result;
206  }
wchar_t * m_pszBuffer
文字列ポインタ
Definition: CString.h:916
virtual bool UpdateBuffer(int nCount) noexcept
バッファサイズ更新関数
Definition: CString.cpp:322
int m_nCount
要素数
Definition: CString.h:918

呼び出し関係図:

被呼び出し関係図:

CStringStream& LibCommon::CStringStream::operator= ( CStringStream const &  )
privatedelete

メンバ詳解

int LibCommon::CStringStream::m_nStreamPoint
protected

ストリームポインタ

CStringStream.h190 行目に定義があります。

参照元 Clear(), InputChar(), OutputChar(), UpdateStreamPoint().


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