package net.argius.filetool;

import java.io.*;

/**
 * アーカイブ展開処理。
 */
public interface Expander {

    /**
     * 次のエントリを取得する。
     * @return エントリ
     * @throws IOException 入出力エラーが発生した場合
     */
    ArchiveEntry nextEntry() throws IOException;

    /**
     * 現在のエントリを展開する。
     * @param os 出力ストリーム
     * @return 転送したサイズ
     * @throws IOException 入出力エラーが発生した場合 
     */
    long expand(OutputStream os) throws IOException;

    /**
     * 終了処理。
     * @throws IOException 入出力エラーが発生した場合
     */
    void close() throws IOException;

}
