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
- BroadcastEventHelper.cs
- DebugHandleTracker.cs
- XmlChildEnumerator.cs
- WebScriptEndpointElement.cs
- ListQueryResults.cs
- CacheMemory.cs
- FrameworkElement.cs
- PropertyChangingEventArgs.cs
- Overlapped.cs
- EntityDataSourceDesigner.cs
- _SslSessionsCache.cs
- TextServicesCompartment.cs
- RegexCaptureCollection.cs
- XamlWriter.cs
- OpCodes.cs
- SqlDataReaderSmi.cs
- ListViewInsertEventArgs.cs
- FacetValues.cs
- XNodeNavigator.cs
- DataGridViewLinkColumn.cs
- EnvelopeVersion.cs
- AsmxEndpointPickerExtension.cs
- SoapAttributeOverrides.cs
- ToolStripDropDownMenu.cs
- SchemaNotation.cs
- SmtpNegotiateAuthenticationModule.cs
- SetIterators.cs
- ServiceHostFactory.cs
- DynamicQueryStringParameter.cs
- TextTreeInsertElementUndoUnit.cs
- CompositeFontFamily.cs
- ProcessStartInfo.cs
- DecimalAnimationUsingKeyFrames.cs
- ListBase.cs
- ZoneLinkButton.cs
- OleDbPermission.cs
- Vector.cs
- DataSourceView.cs
- TabOrder.cs
- RegexWorker.cs
- FileDialog_Vista_Interop.cs
- regiisutil.cs
- DataGridCommandEventArgs.cs
- IDReferencePropertyAttribute.cs
- VideoDrawing.cs
- TiffBitmapDecoder.cs
- SetterBase.cs
- HttpException.cs
- ParentUndoUnit.cs
- DataMemberFieldConverter.cs
- Cursors.cs
- SqlFunctionAttribute.cs
- InstanceOwner.cs
- safesecurityhelperavalon.cs
- TaiwanLunisolarCalendar.cs
- AnnotationHelper.cs
- KeyManager.cs
- ProcessInfo.cs
- SizeIndependentAnimationStorage.cs
- TableRow.cs
- PromptBuilder.cs
- COM2FontConverter.cs
- DataControlFieldCell.cs
- ScriptingSectionGroup.cs
- ReflectPropertyDescriptor.cs
- WpfPayload.cs
- FixedLineResult.cs
- TableDesigner.cs
- Rectangle.cs
- SafeNativeMemoryHandle.cs
- XmlSchemaInferenceException.cs
- DesignerVerbCollection.cs
- ValidationError.cs
- SqlCommand.cs
- HtmlMeta.cs
- CompoundFileStreamReference.cs
- RenderingBiasValidation.cs
- WmlSelectionListAdapter.cs
- EncoderReplacementFallback.cs
- TypeContext.cs
- CollectionType.cs
- GenericRootAutomationPeer.cs
- RuleSettingsCollection.cs
- InputMethodStateTypeInfo.cs
- DetailsViewInsertEventArgs.cs
- PermissionListSet.cs
- MemberAssignment.cs
- XmlWrappingWriter.cs
- Logging.cs
- TransformerInfo.cs
- DataGridPagerStyle.cs
- StorageEntityTypeMapping.cs
- SizeConverter.cs
- ListBoxChrome.cs
- CustomValidator.cs
- ReadOnlyDataSourceView.cs
- ToolboxService.cs
- SecurityException.cs
- Console.cs
- DelegateTypeInfo.cs