1 /* -*- Mode: csharp; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
6 // Christopher James Lahey <clahey@ximian.com>
8 // (c) 2004 Novell, Inc. <http://www.novell.com>
14 using System
.Runtime
.InteropServices
;
15 using System
.Runtime
.Remoting
.Messaging
;
17 namespace System
.IO
.Compression
{
18 class GzipStream
: Stream
20 private DeflateStream deflateStream
;
22 public GzipStream (Stream compressedStream
, CompressionMode mode
) :
23 this (compressedStream
, mode
, false) {
26 public GzipStream (Stream compressedStream
, CompressionMode mode
, bool leaveOpen
) {
27 this.deflateStream
= new DeflateStream (compressedStream
, mode
, leaveOpen
, true);
30 public override void Close () {
31 deflateStream
.Close();
34 public override int Read (byte[] dest
, int dest_offset
, int count
)
36 return deflateStream
.Read(dest
, dest_offset
, count
);
40 public override void Write (byte[] src
, int src_offset
, int count
)
42 deflateStream
.Write (src
, src_offset
, count
);
45 public override void Flush() {
46 deflateStream
.Flush();
49 public override long Seek (long offset
, SeekOrigin origin
) {
50 return deflateStream
.Seek (offset
, origin
);
53 public override void SetLength (long value) {
54 deflateStream
.SetLength (value);
57 public override IAsyncResult
BeginRead (byte [] buffer
, int offset
, int count
,
58 AsyncCallback cback
, object state
)
60 return deflateStream
.BeginRead (buffer
, offset
, count
, cback
, state
);
63 public override IAsyncResult
BeginWrite (byte [] buffer
, int offset
, int count
,
64 AsyncCallback cback
, object state
)
66 return deflateStream
.BeginWrite (buffer
, offset
, count
, cback
, state
);
69 public override int EndRead(IAsyncResult async_result
) {
70 return deflateStream
.EndRead (async_result
);
73 public override void EndWrite (IAsyncResult async_result
)
75 deflateStream
.EndWrite (async_result
);
78 public Stream BaseStream
{
80 return deflateStream
.BaseStream
;
83 public override bool CanRead
{
85 return deflateStream
.CanRead
;
88 public override bool CanSeek
{
90 return deflateStream
.CanSeek
;
93 public override bool CanWrite
{
95 return deflateStream
.CanWrite
;
98 public override long Length
{
100 return deflateStream
.Length
;
103 deflateStream
.Length
= value;
106 public override long Position
{
108 return deflateStream
.Position
;
111 deflateStream
.Position
= value;