96 lines
2.3 KiB
C#
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_;
|
|
}
|
|
}
|