**** Merged from MCS ****
[mono-project.git] / mcs / class / System / System.IO.Compression / GzipStream.cs
blob1b4a1ed3477122e463562890ba1a5616c5a73aef
1 /* -*- Mode: csharp; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 //
3 // GzipStream.cs
4 //
5 // Authors:
6 // Christopher James Lahey <clahey@ximian.com>
7 //
8 // (c) 2004 Novell, Inc. <http://www.novell.com>
9 //
11 #if NET_2_0
12 using System;
13 using System.IO;
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 {
79 get {
80 return deflateStream.BaseStream;
83 public override bool CanRead {
84 get {
85 return deflateStream.CanRead;
88 public override bool CanSeek {
89 get {
90 return deflateStream.CanSeek;
93 public override bool CanWrite {
94 get {
95 return deflateStream.CanWrite;
98 public override long Length {
99 get {
100 return deflateStream.Length;
102 set {
103 deflateStream.Length = value;
106 public override long Position {
107 get {
108 return deflateStream.Position;
110 set {
111 deflateStream.Position = value;
117 #endif