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
- OverrideMode.cs
- ResourceReader.cs
- Executor.cs
- WebBrowserContainer.cs
- ZipPackage.cs
- XmlElement.cs
- MsmqIntegrationProcessProtocolHandler.cs
- DrawingVisual.cs
- BindableTemplateBuilder.cs
- DataTableMapping.cs
- NegatedCellConstant.cs
- _TimerThread.cs
- FileChangesMonitor.cs
- OleStrCAMarshaler.cs
- PassportIdentity.cs
- NotImplementedException.cs
- ColorPalette.cs
- ResourceWriter.cs
- CommandField.cs
- XmlWhitespace.cs
- MLangCodePageEncoding.cs
- Missing.cs
- RtfControls.cs
- DesignerSerializationVisibilityAttribute.cs
- GenericNameHandler.cs
- WebMessageEncodingBindingElement.cs
- COM2ExtendedUITypeEditor.cs
- ServicePointManagerElement.cs
- TextServicesContext.cs
- MasterPageCodeDomTreeGenerator.cs
- DataTemplateKey.cs
- FontInfo.cs
- Bold.cs
- ExecutionEngineException.cs
- userdatakeys.cs
- Constants.cs
- XPathNodeList.cs
- DbMetaDataCollectionNames.cs
- X509Extension.cs
- DesignerDataColumn.cs
- SqlDataSourceQueryConverter.cs
- HtmlGenericControl.cs
- SmtpDigestAuthenticationModule.cs
- FieldNameLookup.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- Visual3D.cs
- PtsContext.cs
- DocumentViewerBase.cs
- DataServiceHostFactory.cs
- XmlILOptimizerVisitor.cs
- TemplateParser.cs
- GenerateTemporaryTargetAssembly.cs
- externdll.cs
- DependencySource.cs
- WebPartConnectionsEventArgs.cs
- SessionEndingEventArgs.cs
- DesignTimeParseData.cs
- TextBoxRenderer.cs
- Expander.cs
- ExceptionWrapper.cs
- LeaseManager.cs
- SQLInt16Storage.cs
- RegisteredHiddenField.cs
- CustomAttributeSerializer.cs
- SqlMethodCallConverter.cs
- EntityDataSourceContextCreatedEventArgs.cs
- SafePointer.cs
- DataGridViewAdvancedBorderStyle.cs
- DocumentSequence.cs
- basenumberconverter.cs
- BitmapCodecInfo.cs
- Model3D.cs
- SoapTypeAttribute.cs
- SizeLimitedCache.cs
- clipboard.cs
- InheritedPropertyDescriptor.cs
- DataKey.cs
- DesignBinding.cs
- XmlTextReaderImplHelpers.cs
- TTSEvent.cs
- SQlBooleanStorage.cs
- UserControlDocumentDesigner.cs
- FactoryRecord.cs
- VirtualizingStackPanel.cs
- PointCollectionConverter.cs
- ToolStripComboBox.cs
- IsolatedStorageFile.cs
- ContractType.cs
- MulticastDelegate.cs
- SortExpressionBuilder.cs
- iisPickupDirectory.cs
- ClrProviderManifest.cs
- URLMembershipCondition.cs
- ConfigurationManagerInternal.cs
- IssuedTokenParametersElement.cs
- CompilerResults.cs
- PluralizationService.cs
- LocationUpdates.cs
- XmlSchemaFacet.cs
- ClientEventManager.cs