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
- UpdateTracker.cs
- OptimalBreakSession.cs
- EventListenerClientSide.cs
- XmlSchemaInfo.cs
- SqlParameter.cs
- ServiceSecurityContext.cs
- DataGridViewIntLinkedList.cs
- WebPartCatalogCloseVerb.cs
- SHA256Managed.cs
- StrokeIntersection.cs
- securitycriticaldata.cs
- InternalConfigRoot.cs
- XmlReaderDelegator.cs
- C14NUtil.cs
- Invariant.cs
- PenLineJoinValidation.cs
- MaskedTextProvider.cs
- SQLUtility.cs
- ArrayList.cs
- CurrencyManager.cs
- SoapAttributes.cs
- CodeTypeMemberCollection.cs
- CategoryAttribute.cs
- AssemblyResourceLoader.cs
- OptimisticConcurrencyException.cs
- SqlBinder.cs
- GridViewColumnCollection.cs
- DataGridColumn.cs
- LayoutEvent.cs
- DisplayToken.cs
- XmlReaderDelegator.cs
- TransformPatternIdentifiers.cs
- MessageQueueTransaction.cs
- PerSessionInstanceContextProvider.cs
- WebPartTransformerAttribute.cs
- SchemaTableOptionalColumn.cs
- UnicastIPAddressInformationCollection.cs
- DeleteCardRequest.cs
- FastPropertyAccessor.cs
- NavigatingCancelEventArgs.cs
- RSAOAEPKeyExchangeDeformatter.cs
- AttachedAnnotation.cs
- wmiprovider.cs
- WebPartActionVerb.cs
- SubqueryRules.cs
- DataGridViewButtonCell.cs
- ScaleTransform.cs
- OneOf.cs
- PeerTransportSecurityElement.cs
- InstanceDataCollectionCollection.cs
- ProxyWebPartManager.cs
- TextSpanModifier.cs
- RowsCopiedEventArgs.cs
- OutgoingWebRequestContext.cs
- ToggleProviderWrapper.cs
- EnumMember.cs
- XslVisitor.cs
- DbParameterHelper.cs
- UnsafeNativeMethods.cs
- TextureBrush.cs
- BamlTreeNode.cs
- CryptoConfig.cs
- BasicViewGenerator.cs
- NotImplementedException.cs
- COM2PictureConverter.cs
- EditorPartCollection.cs
- DbConnectionInternal.cs
- EventMappingSettingsCollection.cs
- BitmapData.cs
- ToolStripButton.cs
- GradientStop.cs
- PrivateFontCollection.cs
- HyperLinkColumn.cs
- FacetChecker.cs
- WebBrowserNavigatedEventHandler.cs
- XmlnsPrefixAttribute.cs
- ValidatingReaderNodeData.cs
- AttributeAction.cs
- ProtocolsConfigurationHandler.cs
- DataServiceQueryOfT.cs
- XmlConvert.cs
- FormsAuthenticationUserCollection.cs
- InputLanguageSource.cs
- hwndwrapper.cs
- HasCopySemanticsAttribute.cs
- WindowsEditBoxRange.cs
- TableDetailsCollection.cs
- _SpnDictionary.cs
- EmptyElement.cs
- TextClipboardData.cs
- CookieHandler.cs
- SystemColors.cs
- SqlDataSourceParameterParser.cs
- Matrix3D.cs
- BindingParameterCollection.cs
- HtmlInputPassword.cs
- Marshal.cs
- ListChangedEventArgs.cs
- _TimerThread.cs
- ResourceExpressionEditor.cs