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); } }
private void WriteHeader() { if (this.state_ == GZipOutputStream.OutputState.Header) { this.state_ = GZipOutputStream.OutputState.Footer; long arg_34_0 = DateTime.Now.Ticks; DateTime dateTime = new DateTime(1970, 1, 1); int num = (int)((arg_34_0 - dateTime.Ticks) / 10000000L); byte[] expr_45 = new byte[] { 31, 139, 8, 0, 0, 0, 0, 0, 0, 255 }; expr_45[4] = (byte)num; expr_45[5] = (byte)(num >> 8); expr_45[6] = (byte)(num >> 16); expr_45[7] = (byte)(num >> 24); byte[] array = expr_45; this.baseOutputStream_.Write(array, 0, array.Length); } }
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(); } } } }