Zip for WPF and Silverlight
C1.C1Zip.ZLib Namespace / ZStream Class / inflate Method
出力バッファにデータをフラッシュする方法(デフォルト値は2)。

In This Topic
    inflate Method (ZStream)
    In This Topic
    入力バッファを使い切るか、出力バッファがいっぱいになるまで、できる限り多くのデータを圧縮解除します。
    Syntax
    'Declaration
     
    
    Public Function inflate( _
       ByVal flush As Integer _
    ) As Integer
    public int inflate( 
       int flush
    )

    Parameters

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

    Return Value

    何らかの処理が行われた場合(さらに入力が処理されたか、出力が生成された場合)は、Z_OK。圧縮データの末尾に到達し、すべての圧縮解除出力が生成された場合は、Z_STREAM_END。この時点でプリセット辞書が必要な場合は、Z_NEED_DICT。入力データが破損していた場合(入力ストリームが zlib 形式に準拠していないか、チェックサムが不正な場合)は、Z_DATA_ERROR。ストリーム構造体が矛盾していた場合(たとえば、next_in または next_out が null の場合)は、Z_STREAM_ERROR。メモリ不足の場合は、Z_MEM_ERRORZ_FINISH が使用されているが、処理を続行できないか、出力バッファに空きがなかった場合は、Z_BUF_ERROR
    Remarks

    inflate は、次のアクションの一方または両方を実行します。

    1. next_in の位置から入力データを圧縮解除し、それに応じて next_inavail_in を更新します。(出力バッファに空きがないために)一部の入力が処理されなくても、next_in が更新され、次回の inflate の呼び出しではこの位置から処理が再開されます。

    2. next_out の位置からさらに出力を提供し、それに応じて next_outavail_out を更新します。inflate は、入力データがなくなるか、出力バッファの空きがなくなるまで、できる限り多くの出力を提供します。

    inflate を呼び出す前に、少なくとも一方のアクションを実行できるようにしておく必要があります。つまり、入力を追加したり出力を取り出し、それに応じて next_*avail_* の値を更新します。

    inflate が0を返し、avail_out == 0 の場合は、保留中の出力がある可能性があるため、出力バッファに空きを作った後で再度 inflate を呼び出す必要があります。

    アプリケーションは、出力バッファがいっぱい(avail_out == 0)の場合や inflate を呼び出すたびなど、必要なときに圧縮解除出力を取り出すことができます。

    強制的にフラッシュされない限り、このメソッドでは、多少の出力遅延(入力を読み取るが、出力が生成されない)が発生する場合があります。

    See Also