nlib
nn::nlib::MemoryOutputStream クラスfinal

メモリを使用する出力ストリームを作成します。 [詳解]

#include "nn/nlib/MemoryOutputStream.h"

+ nn::nlib::MemoryOutputStream の継承関係図

公開メンバ関数

const void * data () const noexcept
 出力データの先頭のポインタを取得します。 [詳解]
 
errno_t Init (void *buf, size_t n) noexcept
 MemoryOuputStreamを初期化して利用できるようにします。 [詳解]
 
template<class T , size_t N>
errno_t Init (T(&buf)[N]) noexcept
 MemoryOuputStreamを初期化して利用できるようにします。 [詳解]
 
基本的なメンバ関数
 MemoryOutputStream () noexcept
 デフォルトコンストラクタです。利用前にInit()メンバ関数を呼び出す必要があります。
 
 MemoryOutputStream (void *buf, size_t n) noexcept
 MemoryOutputStreamを構築して初期化します。 [詳解]
 
template<class T , size_t N>
 MemoryOutputStream (T(&buf)[N]) noexcept
 MemoryOutputStreamを構築して初期化します。 [詳解]
 
virtual ~MemoryOutputStream () noexcept override
 デストラクタです。
 
- 基底クラス nn::nlib::OutputStream に属する継承公開メンバ関数
size_t Pos () const noexcept
 ストリーム上の現在位置を返します。 [詳解]
 
uint64_t Pos64 () const noexcept
 ストリーム上の現在位置を64bit整数で返します。 [詳解]
 
bool Write (int b) noexcept
 ストリームに1バイトのデータを書き込みます。 [詳解]
 
bool Write (const void *p, size_t n) noexcept
 ストリームにn バイトのデータを書き込みます。 [詳解]
 
bool WriteGather (const nlib_fd_iovec *iov, int iovcnt) noexcept
 複数の非連続のバッファからデータをストリームに書き出します。 [詳解]
 
bool Flush () noexcept
 ストリームをフラッシュします。 [詳解]
 
bool Close () noexcept
 ストリームをフラッシュした後、ストリームを閉じます。成功した場合にはtrueを返します。 [詳解]
 
errno_t GetErrorValue () const noexcept
 エラー値を取得します。 [詳解]
 
BufferingMode GetBufferingMode () const noexcept
 バッファリングモードを取得します。
 
 operator bool () const
 内部でエラーが発生していなければtrueを返します。
 
constexpr OutputStream () noexcept
 デフォルトコンストラクタです。
 
virtual ~OutputStream () noexcept
 デストラクタです。何もしません。
 

その他の継承メンバ

- 基底クラス nn::nlib::OutputStream に属する継承公開型
enum  BufferingMode {
  BUFFERINGMODE_BLOCKBUFFERED = 0,
  BUFFERINGMODE_LINEBUFFERED,
  BUFFERINGMODE_UNBUFFERED
}
 OutputStreamのバッファリングモードです。 [詳解]
 
- 基底クラス nn::nlib::OutputStream に属する継承限定公開メンバ関数
void ResetBuffer (void *p, size_t nbytes) noexcept
 OutputStreamが持つバッファを設定します。 [詳解]
 
void SetError (errno_t e) const noexcept
 OutputStreamにエラーを設定します。 [詳解]
 
- 基底クラス nn::nlib::OutputStream に属する継承限定公開変数類
BufferingMode m_BufferingMode
 バッファリングモードが格納されています。 [詳解]
 

詳解

メモリを使用する出力ストリームを作成します。

説明
バッキングストアとして、初期化時にユーザーがメモリ領域を割り当てます。
以下はMemoryOutputStreamを構築する場合のコード例です。
using nexi::MemoryOutputStream;
unsigned char buf[SIZE];
MemoryOutputStream os1(&buf[0], SIZE);
os3.Init(&buf[0], SIZE);
os4.Init(buf);
オブジェクトの状態遷移
オブジェクトの状態遷移の概略は以下のとおりです。
dot_inline_dotgraph_9.png
各種例:
exi/script/script.cpp, exi/simple1/simple1.cpp, exi/simple2/simple2.cpp, misc/stringutils/stringutils.cpp, msgpack/json/json.cpp.

MemoryOutputStream.h10 行目に定義があります。

構築子と解体子

§ MemoryOutputStream() [1/2]

nn::nlib::MemoryOutputStream::MemoryOutputStream ( void *  buf,
size_t  n 
)
noexcept

MemoryOutputStreamを構築して初期化します。

引数
[out]bufメモリ領域へのポインタ
[in]nメモリ領域のサイズ

§ MemoryOutputStream() [2/2]

template<class T , size_t N>
nn::nlib::MemoryOutputStream::MemoryOutputStream ( T(&)  buf[N])
inlineexplicitnoexcept

MemoryOutputStreamを構築して初期化します。

引数
[out]buf出力バッファとして利用される配列

MemoryOutputStream.h15 行目に定義があります。

関数詳解

§ data()

nn::nlib::MemoryOutputStream::data ( ) const
inlinenoexcept

出力データの先頭のポインタを取得します。

戻り値
出力バッファの先頭のポインタ

MemoryOutputStream.h20 行目に定義があります。

§ Init() [1/2]

nn::nlib::MemoryOutputStream::Init ( void *  buf,
size_t  n 
)
noexcept

MemoryOuputStreamを初期化して利用できるようにします。

引数
[out]bufメモリ領域へのポインタ
[in]nメモリ領域のサイズ
戻り値
0ならば成功

§ Init() [2/2]

template<class T , size_t N>
nn::nlib::MemoryOutputStream::Init ( T(&)  buf[N])
inlinenoexcept

MemoryOuputStreamを初期化して利用できるようにします。

引数
[out]bufバッキングストアとする配列
戻り値
0ならば成功

MemoryOutputStream.h23 行目に定義があります。


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