nlib
|
zlib
を用いて圧縮したデータを読み込むためのストリームクラスです。
[詳解]
#include "nn/nlib/ZlibInputStream.h"
公開メンバ関数 | |
errno_t | Init () noexcept |
デフォルト設定で初期化します。 [詳解] | |
errno_t | Init (const ZlibInputStreamSettings &settings) noexcept |
settings で指定した値に従いストリーミングに利用するバッファ等の設定を行います。 [詳解] | |
基本的なメンバ関数 | |
ZlibInputStream () noexcept | |
デフォルトコンストラクタです。 | |
![]() | |
errno_t | SetStream (InputStream *istr) noexcept |
変換前のデータを読み込む入力ストリームを設定します。 [詳解] | |
InputStream * | GetStream () const noexcept |
変換前のデータを読み込む入力ストリームを取得します。 [詳解] | |
![]() | |
errno_t | GetErrorValue () const noexcept |
エラー値を取得します。 [詳解] | |
size_t | Pos () const noexcept |
ストリーム上の現在位置を返します。 [詳解] | |
uint64_t | Pos64 () const noexcept |
ストリーム上の現在位置を64bit値で返します。 [詳解] | |
bool | IsEos () noexcept |
ストリームを最後まで読み終えている場合true を返します。最後まで読み終えていない場合やエラーが発生している場合はfalse を返します。 [詳解] | |
int | Read () noexcept |
ストリームから1バイトを読み込みます。 [詳解] | |
NLIB_CHECK_RESULT int | Peek () noexcept |
ストリームを消費せずに次の1バイトを読み込みます。 [詳解] | |
size_t | Skip (size_t nbytes) noexcept |
nbytes を読み飛ばします。 [詳解] | |
size_t | Read (void *ptr, size_t nbytes) noexcept |
ptr で示されるメモリにnbytes 読み込みます。 [詳解] | |
bool | Close () noexcept |
ストリームを閉じます。成功した場合にはtrue を返します。 [詳解] | |
operator bool () const | |
内部でエラーが発生していなければtrue を返します。 | |
constexpr | InputStream () noexcept |
コンストラクタです。派生クラスから呼び出されます。 | |
virtual | ~InputStream () noexcept |
デストラクタです。派生クラスから呼び出されます。 | |
その他の継承メンバ | |
![]() | |
void | ResetBuffer (void *p, size_t nbytes) noexcept |
InputStream が持つバッファを設定します。 [詳解] | |
void | SetError (errno_t e) const noexcept |
InputStream にエラーを設定します。 [詳解] | |
zlib
を用いて圧縮したデータを読み込むためのストリームクラスです。
zlib
で圧縮したデータをストリーミングで読み込みます。 サイズの大きいデータでもストリーミングして読み込むことができます。 Init()
でバッファ等をセットアップし、SetStream()
でベースストリームに関連付けてから、InputStream
と同様にデータを読み出します。 SetStream()
以前の状態に戻る)されます。 ベースストリーム自体をクローズすることはありません。 zlib
のエラーはerrno
のエラー値が設定されます。 Z_DATA_ERROR
の場合はEILSEQ
Z_NEED_DICT
の場合はEILSEQ
Z_STREAM_ERROR
の場合はEIO
Z_MEM_ERROR
の場合はENOMEM
Z_BUF_ERROR
の場合はENOBUFS
EOF
が見つかった場合はEOF
EIO
SetStream()
関数の動作について以下に解説します。 inflateInit2
を呼び出していて、データの展開のための初期化を行なっています。 現在のところinflateInit2
のwindowBits
には47が指定されています。 z_stream
のzalloc
, zfree
, opaque
にはいずれもZ_NULL
が指定されています。 zlib
のinflateInit2
が返すエラーについては以下のような変換が行われています。 Z_MEM_ERROR
はENOMEM
に変換されます。 Z_STREAM_ERROR
はEINVAL
に変換されます。 Z_VERSION_ERROR
はENOTSUP
に変換されます。 ZlibInputStream.h の 53 行目に定義があります。
|
inlinenoexcept |
デフォルト設定で初期化します。
ZlibInputStream.h の 58 行目に定義があります。
|
noexcept |
settings
で指定した値に従いストリーミングに利用するバッファ等の設定を行います。
[in] | settings | バッファ等の設定データ |
0 | エラーは発生していません。 |
EALREADY | 既にInit() が実行されている場合 |
EINVAL | バッファサイズが1024未満の場合、及びsettings で指定されたバッファの片方のみがNULL だった場合 |
ENOMEM | バッファの動的確保が失敗した場合 |
© 2012-2017 Nintendo Co., Ltd. All rights reserved.