Files
Dec2017-Script-Dump/ICSharpCode.SharpZipLib/Zip/MemoryArchiveStorage.cs
T
2026-06-04 11:42:34 +02:00

96 lines
2.3 KiB
C#

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_;
}
}