using System; using System.IO; using SharpCompress.Common; namespace SharpCompress.Readers { public interface IReader : IDisposable { event EventHandler> EntryExtractionProgress; event EventHandler CompressedBytesRead; event EventHandler FilePartExtractionBegin; ArchiveType ArchiveType { get; } IEntry Entry { get; } /// /// Decompresses the current entry to the stream. This cannot be called twice for the current entry. /// /// void WriteEntryTo(Stream writableStream); bool Cancelled { get; } void Cancel(); /// /// Moves to the next entry by reading more data from the underlying stream. This skips if data has not been read. /// /// bool MoveToNextEntry(); /// /// Opens the current entry as a stream that will decompress as it is read. /// Read the entire stream or use SkipEntry on EntryStream. /// EntryStream OpenEntryStream(); } }