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
- EventLogPropertySelector.cs
- Messages.cs
- TextureBrush.cs
- BreakSafeBase.cs
- SqlDependency.cs
- BufferedStream.cs
- UIElement3D.cs
- RSAPKCS1SignatureDeformatter.cs
- TerminatorSinks.cs
- SqlBuilder.cs
- contentDescriptor.cs
- _SSPISessionCache.cs
- DatePicker.cs
- FacetValues.cs
- WebBrowserSiteBase.cs
- ComponentManagerBroker.cs
- DatagridviewDisplayedBandsData.cs
- DataSourceCache.cs
- EntityTypeEmitter.cs
- RealProxy.cs
- ColumnMapProcessor.cs
- PolicyUnit.cs
- SimpleTextLine.cs
- SubMenuStyleCollection.cs
- UIntPtr.cs
- PopOutPanel.cs
- ProcessThread.cs
- DataPagerField.cs
- RoutedEventValueSerializer.cs
- CapabilitiesSection.cs
- PageScaling.cs
- WindowsTokenRoleProvider.cs
- FontNamesConverter.cs
- CheckBoxStandardAdapter.cs
- CryptoProvider.cs
- SpanIndex.cs
- ProfileElement.cs
- Point3DCollection.cs
- QueuePathEditor.cs
- KeyGesture.cs
- SqlServices.cs
- RTLAwareMessageBox.cs
- SqlCacheDependencyDatabase.cs
- PenContext.cs
- WindowsGraphics.cs
- ZipIOBlockManager.cs
- DbProviderFactories.cs
- Rect3D.cs
- ToolStripManager.cs
- RecognizerInfo.cs
- PointF.cs
- ValidateNames.cs
- XmlDocumentFragment.cs
- WebDescriptionAttribute.cs
- CompiledQueryCacheEntry.cs
- CodeSnippetExpression.cs
- MasterPageParser.cs
- XmlILAnnotation.cs
- VScrollBar.cs
- ColorBuilder.cs
- TableRowsCollectionEditor.cs
- PropertyCollection.cs
- SystemGatewayIPAddressInformation.cs
- FullTrustAssemblyCollection.cs
- FileChangeNotifier.cs
- Utils.cs
- ElementMarkupObject.cs
- ValueSerializer.cs
- FieldNameLookup.cs
- HttpNamespaceReservationInstallComponent.cs
- ReturnValue.cs
- EncryptedReference.cs
- XmlWhitespace.cs
- WinEventQueueItem.cs
- FormsAuthenticationCredentials.cs
- TemplateBamlRecordReader.cs
- GeneralTransform3D.cs
- EncryptedData.cs
- UpdateCompiler.cs
- ToolStripDropDownButton.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- IpcPort.cs
- ConfigurationValue.cs
- WorkflowMarkupElementEventArgs.cs
- TextWriter.cs
- Guid.cs
- MessageEncodingBindingElementImporter.cs
- RightsManagementPermission.cs
- NonSerializedAttribute.cs
- AllMembershipCondition.cs
- DesignerResources.cs
- CharacterHit.cs
- TextEditorSpelling.cs
- EntityDataSourceWizardForm.cs
- InkCollectionBehavior.cs
- StrokeSerializer.cs
- XmlExceptionHelper.cs
- PackageController.cs
- HttpValueCollection.cs
- RemotingServices.cs