nlib
|
zlib
を用いてデータを圧縮してストリームに書き込みます。
[詳解]
#include "nn/nlib/ZlibOutputStream.h"
公開メンバ関数 | |
errno_t | Init () noexcept |
デフォルト設定で初期化します。 [詳解] | |
errno_t | Init (const ZlibOutputStreamSettings &settings) noexcept |
settings で指定した値に従いストリーミングに利用するバッファ等の設定を行います。 [詳解] | |
基本的なメンバ関数 | |
ZlibOutputStream () noexcept | |
デフォルトコンストラクタです。 | |
![]() | |
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 を返します。 | |
constexpr | OutputStream () noexcept |
デフォルトコンストラクタです。 | |
virtual | ~OutputStream () noexcept |
デストラクタです。何もしません。 | |
その他の継承メンバ | |
![]() | |
enum | BufferingMode { BUFFERINGMODE_BLOCKBUFFERED = 0, BUFFERINGMODE_LINEBUFFERED, BUFFERINGMODE_UNBUFFERED } |
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 の 44 行目に定義があります。
|
inlinenoexcept |
デフォルト設定で初期化します。
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
に変換されます。 ZlibOutputStream.h の 48 行目に定義があります。
|
noexcept |
settings
で指定した値に従いストリーミングに利用するバッファ等の設定を行います。
[in] | settings | バッファ等の設定データ |
0 | エラーは発生していません。 |
EALREADY | 既にInit() が実行されている場合 |
EINVAL | バッファサイズが1024 未満の場合、及びsettings で指定されたバッファの片方のみがNULL だった場合 |
ENOMEM | バッファの動的確保が失敗した場合 |
© 2012-2016 Nintendo Co., Ltd. All rights reserved.