nlib
|
zlib
を用いてデータを圧縮してストリームに書き込みます。
[詳解]
#include "nn/nlib/ZlibOutputStream.h"
公開メンバ関数 | |
コンストラクタ、デストラクタ、及び初期化 | |
constexpr | ZlibOutputStream () noexcept |
デフォルトコンストラクタです。 | |
errno_t | Init () noexcept |
上記関数の引数省略版で、settings をデフォルト値で渡します。 | |
errno_t | Init (const ZlibOutputStreamSettings &settings) noexcept |
動作オプションを指定して初期化を行います。成功した場合は0を返します。 [詳解] | |
![]() | |
errno_t | SetStream (OutputStream *ostr) noexcept |
ベースとなる出力ストリームを設定します。 [詳解] | |
OutputStream * | GetStream () const noexcept |
ベースとなる入力ストリームを取得します。 [詳解] | |
![]() | |
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 、発生していればfalse を返します。 | |
constexpr | OutputStream () noexcept |
デフォルトコンストラクタです。 | |
virtual | ~OutputStream () noexcept |
デストラクタです。 | |
その他の継承メンバ | |
![]() | |
enum | BufferingMode { kBufferingModeBlockBuffered = 0, kBufferingModeLineBuffered, kBufferingModeUnbuffered } |
OutputStream のバッファリングモードです。 [詳解] | |
![]() | |
void | ResetBuffer (void *p, size_t nbytes) noexcept |
OutputStream が持つバッファを設定します。 [詳解] | |
void | SetError (errno_t e) const noexcept |
OutputStream にエラーを設定します。 [詳解] | |
![]() | |
BufferingMode | m_BufferingMode |
バッファリングモードが格納されています。 [詳解] | |
zlib
を用いてデータを圧縮してストリームに書き込みます。
zlib
で圧縮され書き込まれます。 サイズの大きいデータでもストリーミングして書き込むことができます。 Init()
でバッファ等をセットアップし、SetStream()
でベースストリームに関連付けてから、OutputStream
と同様にデータを書き出します。 このストリームをクローズするとベースストリームはフラッシュされデタッチ(SetStream()
以前の状態に戻る)されます。 ベースストリーム自体をクローズすることはありません。 zlib
のエラーはerrno
のエラー値が設定されます。 Z_STREAM_ERROR
の場合はEIO
Z_MEM_ERROR
の場合はENOMEM
Z_BUF_ERROR
の場合はENOBUFS
EIO
ZlibOutputStream.h の 57 行目に定義があります。
|
noexcept |
動作オプションを指定して初期化を行います。成功した場合は0を返します。
[in] | settings | 動作オプション |
0 | 成功した場合 |
EALREADY | 既に初期化済みの場合 |
ENOMEM | 内部でメモリ確保に失敗した場合 |
EINVAL | 動作オプションの指定が不正だった場合 |
SetStream()
の内部ではdeflateInit2
を呼び出していて、データ圧縮のための初期化を行なっています。 windowBits
には31が、memLevel
には8が、strategy
にはZ_DEFAULT_STRATEGY
が指定されています。 z_stream
のzalloc
, zfree
, opaque
にはいずれもZ_NULL
が指定されています。 EEXIST
を返します。 ostr
がNULL
の場合はEINVAL
を返します。 zlib
のdeflateInit2
が返すエラーについては以下のような変換が行われています。 Z_MEM_ERROR
はENOMEM
に変換されます。 Z_STREAM_ERROR
はEINVAL
に変換されます。 Z_VERSION_ERROR
はENOTSUP
に変換されます。 © Nintendo Co., Ltd. All rights reserved.