3 using SharpCompress.Common;
5 namespace SharpCompress.Writer
7 internal abstract class AbstractWriter : IWriter
9 private bool closeStream;
10 private bool isDisposed;
12 protected AbstractWriter(ArchiveType type)
14 this.WriterType = type;
17 protected void InitalizeStream(Stream stream, bool closeStream)
19 this.OutputStream = stream;
20 this.closeStream = closeStream;
23 protected Stream OutputStream { get; private set; }
25 public ArchiveType WriterType { get; private set; }
27 public abstract void Write(string filename, System.IO.Stream source, DateTime? modificationTime);
29 protected virtual void Dispose(bool isDisposing)
31 if (isDisposing && closeStream)
33 OutputStream.Dispose();
41 GC.SuppressFinalize(this);