nlib
|
zlib
を用いて圧縮したデータを読み込むためのストリームクラスです。
[詳解]
#include "nn/nlib/ZlibInputStream.h"
公開メンバ関数 | |
コンストラクタ、デストラクタ、及び初期化 | |
constexpr | ZlibInputStream () noexcept |
デフォルトコンストラクタです。 | |
errno_t | Init () noexcept |
上記関数の引数省略版で、settings をデフォルト値で渡します。 | |
errno_t | Init (const ZlibInputStreamSettings &settings) noexcept |
動作オプションを指定して初期化を行います。成功した場合は0を返します。 [詳解] | |
![]() | |
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バイトを読み込みます。 [詳解] | |
int | Peek () noexcept |
ストリームを消費せずに次の1バイトを読み込みます。 [詳解] | |
size_t | Skip (size_t nbytes) noexcept |
nbytes を読み飛ばします。 [詳解] | |
size_t | Read (void *ptr, size_t nbytes) noexcept |
ptr で示されるメモリにnbytes 読み込みます。 [詳解] | |
template<size_t N> | |
size_t | Read (nlib_byte_t(&buf)[N]) noexcept |
上記関数のテンプレートオーバーロードです。 | |
bool | Close () noexcept |
ストリームを閉じます。成功した場合にはtrue を返します。 [詳解] | |
bool | Mark (size_t readlimit) noexcept |
現在の読み込み位置にGoBackToMark() で戻ることができるように設定します。 [詳解] | |
bool | GoBackToMark () noexcept |
最後にMark() を実行した読み込み位置に戻ります。 [詳解] | |
bool | IsMarkSupported () const noexcept |
このストリームがMark() とGoBackToMark() をサポートしていればtrue を返します。 | |
operator bool () const | |
オブジェクトが初期化済みで内部でエラーが発生していなければtrue 、発生していればfalse を返します。 | |
constexpr | InputStream () noexcept |
デフォルトコンストラクタです。 派生クラスから呼び出されます。 | |
virtual | ~InputStream () noexcept |
デストラクタです。 派生クラスから呼び出されます。 | |
その他の継承メンバ | |
![]() | |
void | SetBuffer (void *p, size_t nbytes, bool is_mark_supported, bool is_buf_readonly) 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 行目に定義があります。
|
noexcept |
動作オプションを指定して初期化を行います。成功した場合は0を返します。
[in] | settings | 動作オプション |
0 | 成功した場合 |
EALREADY | 既に初期化済みの場合 |
ENOMEM | 内部でメモリ確保に失敗した場合 |
EINVAL | 動作オプションの指定が不正だった場合 |
© Nintendo Co., Ltd. All rights reserved.