This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
@@ -0,0 +1,139 @@
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
namespace ICSharpCode.SharpZipLib.GZip
{
// Token: 0x0200002C RID: 44
public class GZipOutputStream : DeflaterOutputStream
{
// Token: 0x0600014E RID: 334 RVA: 0x00008F57 File Offset: 0x00007F57
public GZipOutputStream(Stream baseOutputStream)
: this(baseOutputStream, 4096)
{
}
// Token: 0x0600014F RID: 335 RVA: 0x00008F65 File Offset: 0x00007F65
public GZipOutputStream(Stream baseOutputStream, int size)
: base(baseOutputStream, new Deflater(-1, true), size)
{
}
// Token: 0x06000150 RID: 336 RVA: 0x00008F81 File Offset: 0x00007F81
public void SetLevel(int level)
{
if (level < 1)
{
throw new ArgumentOutOfRangeException("level");
}
this.deflater_.SetLevel(level);
}
// Token: 0x06000151 RID: 337 RVA: 0x00008F9E File Offset: 0x00007F9E
public int GetLevel()
{
return this.deflater_.GetLevel();
}
// Token: 0x06000152 RID: 338 RVA: 0x00008FAB File Offset: 0x00007FAB
public override void Write(byte[] buffer, int offset, int count)
{
if (this.state_ == GZipOutputStream.OutputState.Header)
{
this.WriteHeader();
}
if (this.state_ != GZipOutputStream.OutputState.Footer)
{
throw new InvalidOperationException("Write not permitted in current state");
}
this.crc.Update(buffer, offset, count);
base.Write(buffer, offset, count);
}
// Token: 0x06000153 RID: 339 RVA: 0x00008FE8 File Offset: 0x00007FE8
public override void Close()
{
try
{
this.Finish();
}
finally
{
if (this.state_ != GZipOutputStream.OutputState.Closed)
{
this.state_ = GZipOutputStream.OutputState.Closed;
if (base.IsStreamOwner)
{
this.baseOutputStream_.Close();
}
}
}
}
// Token: 0x06000154 RID: 340 RVA: 0x00009034 File Offset: 0x00008034
public override void Finish()
{
if (this.state_ == GZipOutputStream.OutputState.Header)
{
this.WriteHeader();
}
if (this.state_ == GZipOutputStream.OutputState.Footer)
{
this.state_ = GZipOutputStream.OutputState.Finished;
base.Finish();
uint num = (uint)(this.deflater_.TotalIn & (long)((ulong)(-1)));
uint num2 = (uint)(this.crc.Value & (long)((ulong)(-1)));
byte[] array = new byte[]
{
(byte)num2,
(byte)(num2 >> 8),
(byte)(num2 >> 16),
(byte)(num2 >> 24),
(byte)num,
(byte)(num >> 8),
(byte)(num >> 16),
(byte)(num >> 24)
};
this.baseOutputStream_.Write(array, 0, array.Length);
}
}
// Token: 0x06000155 RID: 341 RVA: 0x000090E4 File Offset: 0x000080E4
private void WriteHeader()
{
if (this.state_ == GZipOutputStream.OutputState.Header)
{
this.state_ = GZipOutputStream.OutputState.Footer;
int num = (int)((DateTime.Now.Ticks - new DateTime(1970, 1, 1).Ticks) / 10000000L);
byte[] array = new byte[] { 31, 139, 8, 0, 0, 0, 0, 0, 0, byte.MaxValue };
array[4] = (byte)num;
array[5] = (byte)(num >> 8);
array[6] = (byte)(num >> 16);
array[7] = (byte)(num >> 24);
byte[] array2 = array;
this.baseOutputStream_.Write(array2, 0, array2.Length);
}
}
// Token: 0x040000B6 RID: 182
protected Crc32 crc = new Crc32();
// Token: 0x040000B7 RID: 183
private GZipOutputStream.OutputState state_;
// Token: 0x0200002D RID: 45
private enum OutputState
{
// Token: 0x040000B9 RID: 185
Header,
// Token: 0x040000BA RID: 186
Footer,
// Token: 0x040000BB RID: 187
Finished,
// Token: 0x040000BC RID: 188
Closed
}
}
}