Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Sys / System / IO / compression / GZipStream.cs / 1305376 / GZipStream.cs
namespace System.IO.Compression { using System.IO; using System.Diagnostics; using System.Security.Permissions; public class GZipStream : Stream { private DeflateStream deflateStream; public GZipStream(Stream stream, CompressionMode mode) : this( stream, mode, false) { } public GZipStream(Stream stream, CompressionMode mode, bool leaveOpen) { deflateStream = new DeflateStream(stream, mode, leaveOpen); if (mode == CompressionMode.Compress) { IFileFormatWriter writeCommand = new GZipFormatter(); deflateStream.SetFileFormatWriter(writeCommand); } else { IFileFormatReader readCommand = new GZipDecoder(); deflateStream.SetFileFormatReader(readCommand); } } public override bool CanRead { get { if( deflateStream == null) { return false; } return deflateStream.CanRead; } } public override bool CanWrite { get { if( deflateStream == null) { return false; } return deflateStream.CanWrite; } } public override bool CanSeek { get { if( deflateStream == null) { return false; } return deflateStream.CanSeek; } } public override long Length { get { throw new NotSupportedException(SR.GetString(SR.NotSupported)); } } public override long Position { get { throw new NotSupportedException(SR.GetString(SR.NotSupported)); } set { throw new NotSupportedException(SR.GetString(SR.NotSupported)); } } public override void Flush() { if( deflateStream == null) { throw new ObjectDisposedException(null, SR.GetString(SR.ObjectDisposed_StreamClosed)); } deflateStream.Flush(); return; } public override long Seek(long offset, SeekOrigin origin) { throw new NotSupportedException(SR.GetString(SR.NotSupported)); } public override void SetLength(long value) { throw new NotSupportedException(SR.GetString(SR.NotSupported)); } [HostProtection(ExternalThreading=true)] public override IAsyncResult BeginRead(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState) { if( deflateStream == null) { throw new InvalidOperationException(SR.GetString(SR.ObjectDisposed_StreamClosed)); } return deflateStream.BeginRead(array, offset, count, asyncCallback, asyncState); } public override int EndRead(IAsyncResult asyncResult) { if( deflateStream == null) { throw new InvalidOperationException(SR.GetString(SR.ObjectDisposed_StreamClosed)); } return deflateStream.EndRead(asyncResult); } [HostProtection(ExternalThreading=true)] public override IAsyncResult BeginWrite(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState) { if( deflateStream == null) { throw new InvalidOperationException(SR.GetString(SR.ObjectDisposed_StreamClosed)); } return deflateStream.BeginWrite(array, offset, count, asyncCallback, asyncState); } public override void EndWrite(IAsyncResult asyncResult) { if( deflateStream == null) { throw new InvalidOperationException(SR.GetString(SR.ObjectDisposed_StreamClosed)); } deflateStream.EndWrite(asyncResult); } public override int Read(byte[] array, int offset, int count) { if( deflateStream == null) { throw new ObjectDisposedException(null, SR.GetString(SR.ObjectDisposed_StreamClosed)); } return deflateStream.Read(array, offset, count); } public override void Write(byte[] array, int offset, int count) { if( deflateStream == null) { throw new ObjectDisposedException(null, SR.GetString(SR.ObjectDisposed_StreamClosed)); } deflateStream.Write(array, offset, count); } protected override void Dispose(bool disposing) { try { if (disposing && deflateStream != null) { deflateStream.Close(); } deflateStream = null; } finally { base.Dispose(disposing); } } public Stream BaseStream { get { if( deflateStream != null) { return deflateStream.BaseStream; } else { return null; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TreeViewBindingsEditorForm.cs
- IndexOutOfRangeException.cs
- TimeSpanSecondsConverter.cs
- FormClosedEvent.cs
- VirtualPath.cs
- cache.cs
- CodeSnippetStatement.cs
- ApplicationSecurityInfo.cs
- BamlLocalizableResource.cs
- Normalization.cs
- TableMethodGenerator.cs
- RC2.cs
- XPathNodeList.cs
- GridViewPageEventArgs.cs
- NullableLongSumAggregationOperator.cs
- BinaryMethodMessage.cs
- AbandonedMutexException.cs
- MetadataPropertyCollection.cs
- ControlEvent.cs
- CommentGlyph.cs
- GridViewRow.cs
- UnknownMessageReceivedEventArgs.cs
- CancellationHandlerDesigner.cs
- CompositeCollection.cs
- SecurityTokenSerializer.cs
- TypeConverterHelper.cs
- SizeFConverter.cs
- Selection.cs
- WebPartEditorCancelVerb.cs
- ViewRendering.cs
- ResolvedKeyFrameEntry.cs
- ThaiBuddhistCalendar.cs
- BindStream.cs
- OpenTypeLayout.cs
- PrimitiveDataContract.cs
- Cursors.cs
- SimpleType.cs
- QilVisitor.cs
- WmfPlaceableFileHeader.cs
- SqlSupersetValidator.cs
- CommonBehaviorsSection.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ReservationCollection.cs
- SqlGenerator.cs
- HtmlWindowCollection.cs
- StreamUpgradeAcceptor.cs
- ElementProxy.cs
- XPathArrayIterator.cs
- XsdDuration.cs
- Formatter.cs
- QueryGeneratorBase.cs
- EntityAdapter.cs
- MetadataFile.cs
- Overlapped.cs
- XNodeValidator.cs
- Byte.cs
- EntityDataSourceView.cs
- Utilities.cs
- RadioButtonFlatAdapter.cs
- ImageFormatConverter.cs
- HandleCollector.cs
- TraceSection.cs
- StatusBar.cs
- SettingsPropertyIsReadOnlyException.cs
- ObjectSet.cs
- PropertyGridView.cs
- ImageKeyConverter.cs
- DataControlFieldTypeEditor.cs
- BrowserCapabilitiesFactory.cs
- RootBrowserWindow.cs
- SplitterPanelDesigner.cs
- TypeSystem.cs
- PassportAuthentication.cs
- MemoryMappedFileSecurity.cs
- IteratorAsyncResult.cs
- cookiecontainer.cs
- ServiceTimeoutsBehavior.cs
- TextRunTypographyProperties.cs
- LoginName.cs
- StrongNameUtility.cs
- SecurityManager.cs
- DataControlField.cs
- PanelDesigner.cs
- log.cs
- HeaderedItemsControl.cs
- TlsSspiNegotiation.cs
- Rotation3D.cs
- IDispatchConstantAttribute.cs
- NativeMethods.cs
- CheckoutException.cs
- BulletedList.cs
- ViewStateModeByIdAttribute.cs
- Point3DCollectionValueSerializer.cs
- ObjectDataSourceDisposingEventArgs.cs
- Config.cs
- TypeDescriptionProvider.cs
- ListParagraph.cs
- ColorComboBox.cs
- PenThreadWorker.cs
- TraceEventCache.cs