using System.IO; namespace SharpCompress.IO; public interface IStreamStack { /// /// Gets or sets the default buffer size to be applied when buffering is enabled for this stream stack. /// This value is used by the SetBuffer extension method to configure buffering on the appropriate stream /// in the stack hierarchy. A value of 0 indicates no default buffer size is set. /// int DefaultBufferSize { get; set; } /// /// Returns the immediate underlying stream in the stack. /// Stream BaseStream(); /// /// Gets or sets the size of the buffer if the stream supports buffering; otherwise, returns 0. /// This property must not throw. /// int BufferSize { get; set; } /// /// Gets or sets the current position within the buffer if the stream supports buffering; otherwise, returns 0. /// This property must not throw. /// int BufferPosition { get; set; } /// /// Updates the internal position state of the stream. This should not perform seeking on the underlying stream, /// but should update any internal position or buffer state as appropriate for the stream implementation. /// /// The absolute position to set within the stream stack. void SetPosition(long position); #if DEBUG_STREAMS /// /// Gets or sets the unique instance identifier for debugging purposes. /// long InstanceId { get; set; } #endif }