Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Sys / System / IO / compression / GZipStream.cs / 1 / 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, true);
}
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;
}
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UIElementAutomationPeer.cs
- ArrayTypeMismatchException.cs
- RectAnimationClockResource.cs
- ConfigViewGenerator.cs
- Claim.cs
- NullableFloatSumAggregationOperator.cs
- WebPartMenu.cs
- NotFiniteNumberException.cs
- CircleHotSpot.cs
- EdmComplexTypeAttribute.cs
- NavigationWindowAutomationPeer.cs
- MouseButton.cs
- HttpHandlersSection.cs
- RawKeyboardInputReport.cs
- DBSqlParserColumn.cs
- SecurityUtils.cs
- RectangleHotSpot.cs
- XmlTextAttribute.cs
- ResourceDescriptionAttribute.cs
- MsmqHostedTransportConfiguration.cs
- CompilationRelaxations.cs
- XmlSerializerVersionAttribute.cs
- ProgressBar.cs
- IPEndPoint.cs
- TimeSpanConverter.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- TextElementEnumerator.cs
- ExceptionCollection.cs
- DataGridTablesFactory.cs
- ClientSession.cs
- _IPv4Address.cs
- CroppedBitmap.cs
- ComboBoxItem.cs
- GetPageNumberCompletedEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- Root.cs
- FileRegion.cs
- ViewUtilities.cs
- RemotingHelper.cs
- Positioning.cs
- ExternalException.cs
- WpfKnownMemberInvoker.cs
- NodeInfo.cs
- ItemType.cs
- TokenBasedSet.cs
- DictionaryBase.cs
- BamlCollectionHolder.cs
- SmiTypedGetterSetter.cs
- TypePropertyEditor.cs
- CommandBindingCollection.cs
- ControlPropertyNameConverter.cs
- UnsafeNativeMethodsCLR.cs
- SafeSystemMetrics.cs
- EntityContainerAssociationSetEnd.cs
- KeyFrames.cs
- oledbconnectionstring.cs
- OracleCommandSet.cs
- ConditionValidator.cs
- CompiledQuery.cs
- PropertyGridEditorPart.cs
- MsmqIntegrationInputChannel.cs
- Soap.cs
- DBSqlParserTableCollection.cs
- ModuleConfigurationInfo.cs
- InterleavedZipPartStream.cs
- StrokeSerializer.cs
- ExpressionEditor.cs
- TypedTableBaseExtensions.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- BufferBuilder.cs
- ConfigurationManagerInternal.cs
- DrawingState.cs
- OleServicesContext.cs
- BlockUIContainer.cs
- IntSecurity.cs
- DBNull.cs
- NativeMethods.cs
- CompiledELinqQueryState.cs
- UIElement.cs
- QueryStringParameter.cs
- RotateTransform3D.cs
- ErrorHandler.cs
- ExpressionBinding.cs
- AuthenticationModuleElement.cs
- EventLogPermission.cs
- ScrollPatternIdentifiers.cs
- FontNamesConverter.cs
- UnionCodeGroup.cs
- SerializationEventsCache.cs
- Math.cs
- HttpModuleActionCollection.cs
- TdsRecordBufferSetter.cs
- RecommendedAsConfigurableAttribute.cs
- RectangleConverter.cs
- Rule.cs
- CodeConditionStatement.cs
- SqlDataSourceCommandParser.cs
- streamingZipPartStream.cs
- EllipseGeometry.cs
- _CacheStreams.cs