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
- SafeEventLogWriteHandle.cs
- WindowPattern.cs
- ApplicationServicesHostFactory.cs
- DataGridViewCellMouseEventArgs.cs
- dsa.cs
- PrintingPermissionAttribute.cs
- ProcessHostServerConfig.cs
- LinkConverter.cs
- FileIOPermission.cs
- XmlCharCheckingReader.cs
- StorageComplexPropertyMapping.cs
- DesignerSerializerAttribute.cs
- ImageInfo.cs
- ObjectPropertyMapping.cs
- SymmetricAlgorithm.cs
- RawTextInputReport.cs
- Method.cs
- PeerIPHelper.cs
- Speller.cs
- DesignerTextViewAdapter.cs
- XXXOnTypeBuilderInstantiation.cs
- TaskExtensions.cs
- VisualStyleInformation.cs
- UnsafeNativeMethodsCLR.cs
- RenameRuleObjectDialog.Designer.cs
- ResourceProviderFactory.cs
- Crypto.cs
- RelationshipWrapper.cs
- EntryPointNotFoundException.cs
- NativeMethodsOther.cs
- CurrentTimeZone.cs
- TraceSection.cs
- TraceUtils.cs
- EditorZoneBase.cs
- VisualStateGroup.cs
- Parallel.cs
- InfoCardKeyedHashAlgorithm.cs
- SystemMulticastIPAddressInformation.cs
- Graphics.cs
- OleDbPermission.cs
- ValueProviderWrapper.cs
- SqlTopReducer.cs
- LocationReferenceValue.cs
- GeometryHitTestResult.cs
- ClosableStream.cs
- ServiceModelConfiguration.cs
- _SingleItemRequestCache.cs
- Parser.cs
- WmlPageAdapter.cs
- RequestCachePolicyConverter.cs
- RootBuilder.cs
- DataKey.cs
- WriterOutput.cs
- EnumValAlphaComparer.cs
- DesignerCategoryAttribute.cs
- XmlILCommand.cs
- BitHelper.cs
- GcHandle.cs
- DependencyPropertyConverter.cs
- Int32AnimationBase.cs
- TemplateBindingExpression.cs
- XmlSchemaSimpleContentRestriction.cs
- _SSPIWrapper.cs
- XsltLoader.cs
- TraceHandler.cs
- Misc.cs
- BuilderPropertyEntry.cs
- CodeDOMUtility.cs
- BrowsableAttribute.cs
- FieldNameLookup.cs
- FontSourceCollection.cs
- FormattedTextSymbols.cs
- XmlCharType.cs
- XhtmlStyleClass.cs
- RuntimeWrappedException.cs
- PKCS1MaskGenerationMethod.cs
- NegationPusher.cs
- OdbcConnectionHandle.cs
- SqlGenerator.cs
- exports.cs
- XmlReflectionImporter.cs
- MailMessage.cs
- AccessibleObject.cs
- NamespaceCollection.cs
- GcHandle.cs
- DrawingAttributes.cs
- Activator.cs
- WebPartConnectionsEventArgs.cs
- ColorMap.cs
- MultitargetingHelpers.cs
- ChildTable.cs
- HandlerBase.cs
- DynamicRendererThreadManager.cs
- LogLogRecordHeader.cs
- DataColumnMapping.cs
- StrokeDescriptor.cs
- BaseComponentEditor.cs
- ImageInfo.cs
- RegexGroupCollection.cs
- KeyManager.cs