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
- ClickablePoint.cs
- CharAnimationUsingKeyFrames.cs
- EntityWrapperFactory.cs
- FactoryId.cs
- ReverseComparer.cs
- ArraySubsetEnumerator.cs
- PartialCachingControl.cs
- OdbcErrorCollection.cs
- DataGridViewCellStyleEditor.cs
- TextBlockAutomationPeer.cs
- LicenseProviderAttribute.cs
- NamespaceCollection.cs
- TimeSpanSecondsConverter.cs
- NetSectionGroup.cs
- ServiceDescriptionReflector.cs
- ProgramPublisher.cs
- TreeNodeCollection.cs
- Lease.cs
- PageRanges.cs
- CultureInfoConverter.cs
- TypeHelper.cs
- InputScopeAttribute.cs
- CapacityStreamGeometryContext.cs
- OrthographicCamera.cs
- PerfCounterSection.cs
- WebCategoryAttribute.cs
- XmlChildNodes.cs
- Span.cs
- EventManager.cs
- EntityClientCacheEntry.cs
- LinqDataSourceHelper.cs
- CompiledQueryCacheEntry.cs
- DbModificationCommandTree.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- IndependentAnimationStorage.cs
- FtpRequestCacheValidator.cs
- ObjectListCommandEventArgs.cs
- DurationConverter.cs
- _Rfc2616CacheValidators.cs
- FunctionImportMapping.cs
- EdmProperty.cs
- SessionIDManager.cs
- ContentElement.cs
- InvokePatternIdentifiers.cs
- keycontainerpermission.cs
- RSAOAEPKeyExchangeFormatter.cs
- LOSFormatter.cs
- QilExpression.cs
- ToolboxComponentsCreatedEventArgs.cs
- WithParamAction.cs
- TagMapCollection.cs
- RoleGroupCollection.cs
- DbBuffer.cs
- DockPatternIdentifiers.cs
- VirtualDirectoryMappingCollection.cs
- StackBuilderSink.cs
- VirtualizingPanel.cs
- ControlBindingsCollection.cs
- RelatedImageListAttribute.cs
- UpdatableWrapper.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ImmutablePropertyDescriptorGridEntry.cs
- DataViewManagerListItemTypeDescriptor.cs
- SqlLiftWhereClauses.cs
- DashStyle.cs
- ClassHandlersStore.cs
- SafeCoTaskMem.cs
- RC2.cs
- SoapServerMethod.cs
- PlaceHolder.cs
- URLAttribute.cs
- MenuItem.cs
- BaseProcessor.cs
- ModelPerspective.cs
- SafeNativeMethods.cs
- Color.cs
- DataSetMappper.cs
- AccessibleObject.cs
- _BaseOverlappedAsyncResult.cs
- HostedHttpRequestAsyncResult.cs
- ListControlActionList.cs
- EditCommandColumn.cs
- RequiredAttributeAttribute.cs
- MaskedTextProvider.cs
- SqlDelegatedTransaction.cs
- ApplicationDirectoryMembershipCondition.cs
- MenuItem.cs
- ProxyWebPart.cs
- NonClientArea.cs
- RootCodeDomSerializer.cs
- DesignColumnCollection.cs
- XamlToRtfParser.cs
- AspCompat.cs
- StringFunctions.cs
- _FtpControlStream.cs
- ResXFileRef.cs
- MediaEntryAttribute.cs
- XmlQueryStaticData.cs
- MsmqIntegrationValidationBehavior.cs
- ProcessModelInfo.cs