Zip for .NET
inflate メソッド

C1.C1Zip.4.5.2 アセンブリ > C1.C1Zip.ZLib 名前空間 > ZStream クラス : inflate メソッド
出力を出力バッファにフラッシュする方法(デフォルト:2)。
できるだけ多くのデータを圧縮解除し、入力バッファが空になるか、出力バッファがいっぱいになったときに停止します。
シンタックス
'宣言
 
Public Function inflate( _
   ByVal flush As System.Integer _
) As System.Integer
public System.int inflate( 
   System.int flush
)

パラメータ

flush
出力を出力バッファにフラッシュする方法(デフォルト:2)。

戻り値の型

処理が幾分進行(さらに入力の処理か出力の生成を実行)したら、Z_OK を返します。

圧縮データの終わりに到達し、すべての圧縮解除された出力を生成したら、Z_STREAM_END を返します。

この時点でプリセットディクショナリが必要であれば、Z_NEED_DICT を返します。

入力データが壊れた場合(zlib 形式に適合しない入力ストリーム、または無効なチェックサム)、Z_DATA_ERROR を返します。

ストリーム構造が一貫しないときは( next_inまたは next_outが Null の場合など)、Z_STREAM_ERROR を返します。

十分なメモリがない場合、Z_MEM_ERROR を返します。

Z_FINISH を使用しているときに、これ以上処理を進行できない場合や出力バッファに十分な空がないときは、Z_BUF_ERROR を返します。

解説

詳細なセマンティクスは以下のとおりです。inflate は、以下の2つのアクションのいずれか、または両方を実行します。

1. next_inから開始してさらに入力を圧縮解除し、随時 next_inavail_inを更新します。一部の入力しか処理できない場合(出力バッファに十分な空がないため)、 next_inが更新され、処理はこの時点から inflate への次の呼び出しを再開します。

2. next_outから開始してさらに出力を提供し、随時 next_outavail_outを更新します。inflate は、入力データがなくなるか、出力バッファに空がなくなるまで最大限の出力を提供します。

inflate への呼び出しの前に、アプリケーションは少なくとも2つのアクションのいずれかが可能であることを保証する必要があります。それを行うには、さらに入力の提供か、出力の消費(またはその両方)を実行し、随時 next_* 値と avail_* 値を更新します。

inflate が Z_OK を返し、 avail_outがゼロの場合、保留中の出力が残っている可能性があるので、出力バッファに空を作ってから inflate を再度呼び出す必要があります。

アプリケーションは、出力バッファがいっぱいになったとき( avail_out== 0)や、inflate の各呼び出しの後など、必要に応じて圧縮解除された出力を消費できます。

このメソッドは、フラッシュを強制した場合を除き、出力待ち時間(出力を生成せずに入力を読み込むこと)が生じることがあります。

参照

ZStream クラス
ZStream メンバ