using System; using System.IO; using ICSharpCode.SharpZipLib.Core; namespace ICSharpCode.SharpZipLib.Zip { // Token: 0x02000079 RID: 121 public class MemoryArchiveStorage : BaseArchiveStorage { // Token: 0x06000499 RID: 1177 RVA: 0x00016BC4 File Offset: 0x00015BC4 public MemoryArchiveStorage() : base(FileUpdateMode.Direct) { } // Token: 0x0600049A RID: 1178 RVA: 0x00016BCD File Offset: 0x00015BCD public MemoryArchiveStorage(FileUpdateMode updateMode) : base(updateMode) { } // Token: 0x1700010F RID: 271 // (get) Token: 0x0600049B RID: 1179 RVA: 0x00016BD6 File Offset: 0x00015BD6 public MemoryStream FinalStream { get { return this.finalStream_; } } // Token: 0x0600049C RID: 1180 RVA: 0x00016BDE File Offset: 0x00015BDE public override Stream GetTemporaryOutput() { this.temporaryStream_ = new MemoryStream(); return this.temporaryStream_; } // Token: 0x0600049D RID: 1181 RVA: 0x00016BF1 File Offset: 0x00015BF1 public override Stream ConvertTemporaryToFinal() { if (this.temporaryStream_ == null) { throw new ZipException("No temporary stream has been created"); } this.finalStream_ = new MemoryStream(this.temporaryStream_.ToArray()); return this.finalStream_; } // Token: 0x0600049E RID: 1182 RVA: 0x00016C22 File Offset: 0x00015C22 public override Stream MakeTemporaryCopy(Stream stream) { this.temporaryStream_ = new MemoryStream(); stream.Position = 0L; StreamUtils.Copy(stream, this.temporaryStream_, new byte[4096]); return this.temporaryStream_; } // Token: 0x0600049F RID: 1183 RVA: 0x00016C54 File Offset: 0x00015C54 public override Stream OpenForDirectUpdate(Stream stream) { Stream stream2; if (stream == null || !stream.CanWrite) { stream2 = new MemoryStream(); if (stream != null) { stream.Position = 0L; StreamUtils.Copy(stream, stream2, new byte[4096]); stream.Close(); } } else { stream2 = stream; } return stream2; } // Token: 0x060004A0 RID: 1184 RVA: 0x00016C99 File Offset: 0x00015C99 public override void Dispose() { if (this.temporaryStream_ != null) { this.temporaryStream_.Close(); } } // Token: 0x0400030D RID: 781 private MemoryStream temporaryStream_; // Token: 0x0400030E RID: 782 private MemoryStream finalStream_; } }