Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / DataServiceStreamResponse.cs / 1305376 / DataServiceStreamResponse.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// This class represents the response as a binary stream of data
// and its metadata.
//
//---------------------------------------------------------------------
namespace System.Data.Services.Client
{
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
#if !ASTORIA_LIGHT // Data.Services http stack
using System.Net;
#else
using System.Data.Services.Http;
#endif
///
/// Class which represents a stream response from the service.
///
public sealed class DataServiceStreamResponse : IDisposable
{
/// The underlying web response
private HttpWebResponse response;
/// Lazy initialized cached response headers.
private Dictionary headers;
///
/// Constructor for the response. This method is internal since we don't want users to create instances
/// of this class.
///
/// The web response to wrap.
internal DataServiceStreamResponse(HttpWebResponse response)
{
Debug.Assert(response != null, "Can't create a stream response object from a null response.");
this.response = response;
}
///
/// Returns the content type of the response stream (ex. image/png).
/// If the Content-Type header was not present in the response this property
/// will return null.
///
public string ContentType
{
get
{
this.CheckDisposed();
return this.response.Headers[XmlConstants.HttpContentType];
}
}
///
/// Returns the content disposition of the response stream.
/// If the Content-Disposition header was not present in the response this property
/// will return null.
///
public string ContentDisposition
{
get
{
this.CheckDisposed();
return this.response.Headers[XmlConstants.HttpContentDisposition];
}
}
///
/// Returns a dictionary containing all the response headers returned from the retrieve request
/// to obtain the stream.
///
public Dictionary Headers
{
get
{
this.CheckDisposed();
if (this.headers == null)
{
this.headers = WebUtil.WrapResponseHeaders(this.response);
}
return this.headers;
}
}
///
/// Returns the stream obtained from the data service. When reading from this stream
/// the operations may throw if a network error occurs. This stream is read-only.
///
/// Caller must call Dispose/Close on either the returned stream or on the response
/// object itself. Otherwise the network connection will be left open and the caller
/// might run out of available connections.
///
public Stream Stream
{
get
{
this.CheckDisposed();
return this.response.GetResponseStream();
}
}
#region IDisposable Members
///
/// Disposes all resources held by this class. Namely the network stream.
///
public void Dispose()
{
Util.Dispose(ref this.response);
}
#endregion
/// Checks if the object has already been disposed. If so it throws the ObjectDisposedException.
/// If the object has already been disposed.
private void CheckDisposed()
{
if (this.response == null)
{
Error.ThrowObjectDisposed(this.GetType());
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// This class represents the response as a binary stream of data
// and its metadata.
//
//---------------------------------------------------------------------
namespace System.Data.Services.Client
{
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
#if !ASTORIA_LIGHT // Data.Services http stack
using System.Net;
#else
using System.Data.Services.Http;
#endif
///
/// Class which represents a stream response from the service.
///
public sealed class DataServiceStreamResponse : IDisposable
{
/// The underlying web response
private HttpWebResponse response;
/// Lazy initialized cached response headers.
private Dictionary headers;
///
/// Constructor for the response. This method is internal since we don't want users to create instances
/// of this class.
///
/// The web response to wrap.
internal DataServiceStreamResponse(HttpWebResponse response)
{
Debug.Assert(response != null, "Can't create a stream response object from a null response.");
this.response = response;
}
///
/// Returns the content type of the response stream (ex. image/png).
/// If the Content-Type header was not present in the response this property
/// will return null.
///
public string ContentType
{
get
{
this.CheckDisposed();
return this.response.Headers[XmlConstants.HttpContentType];
}
}
///
/// Returns the content disposition of the response stream.
/// If the Content-Disposition header was not present in the response this property
/// will return null.
///
public string ContentDisposition
{
get
{
this.CheckDisposed();
return this.response.Headers[XmlConstants.HttpContentDisposition];
}
}
///
/// Returns a dictionary containing all the response headers returned from the retrieve request
/// to obtain the stream.
///
public Dictionary Headers
{
get
{
this.CheckDisposed();
if (this.headers == null)
{
this.headers = WebUtil.WrapResponseHeaders(this.response);
}
return this.headers;
}
}
///
/// Returns the stream obtained from the data service. When reading from this stream
/// the operations may throw if a network error occurs. This stream is read-only.
///
/// Caller must call Dispose/Close on either the returned stream or on the response
/// object itself. Otherwise the network connection will be left open and the caller
/// might run out of available connections.
///
public Stream Stream
{
get
{
this.CheckDisposed();
return this.response.GetResponseStream();
}
}
#region IDisposable Members
///
/// Disposes all resources held by this class. Namely the network stream.
///
public void Dispose()
{
Util.Dispose(ref this.response);
}
#endregion
/// Checks if the object has already been disposed. If so it throws the ObjectDisposedException.
/// If the object has already been disposed.
private void CheckDisposed()
{
if (this.response == null)
{
Error.ThrowObjectDisposed(this.GetType());
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DriveNotFoundException.cs
- ThaiBuddhistCalendar.cs
- SpellerHighlightLayer.cs
- CompositeDuplexElement.cs
- WindowClosedEventArgs.cs
- Util.cs
- Closure.cs
- NameObjectCollectionBase.cs
- ActionMismatchAddressingException.cs
- UrlMappingsSection.cs
- KeyValueConfigurationElement.cs
- MarkupExtensionParser.cs
- StateMachineDesignerPaint.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- QilStrConcat.cs
- TileModeValidation.cs
- ByeMessageApril2005.cs
- ValidationRule.cs
- QuaternionAnimation.cs
- FieldBuilder.cs
- DBAsyncResult.cs
- MessageHeader.cs
- Misc.cs
- LambdaSerializationException.cs
- DataContractSerializerOperationGenerator.cs
- CompilerTypeWithParams.cs
- QueryOperationResponseOfT.cs
- RegistrationContext.cs
- ManipulationDeltaEventArgs.cs
- Int32Storage.cs
- XmlComment.cs
- SafeNativeMethodsCLR.cs
- BidPrivateBase.cs
- DomNameTable.cs
- DataTemplateSelector.cs
- MediaPlayerState.cs
- DecoderBestFitFallback.cs
- XmlSerializationWriter.cs
- XPathSelectionIterator.cs
- WindowsAuthenticationEventArgs.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- SqlTrackingWorkflowInstance.cs
- SimpleBitVector32.cs
- RegexTypeEditor.cs
- TypeSemantics.cs
- FieldBuilder.cs
- ThumbAutomationPeer.cs
- StoreItemCollection.cs
- WebContext.cs
- OleStrCAMarshaler.cs
- InkCollectionBehavior.cs
- Point3DIndependentAnimationStorage.cs
- SmiContext.cs
- NetworkAddressChange.cs
- Dynamic.cs
- JsonEncodingStreamWrapper.cs
- ToolStripComboBox.cs
- DragEventArgs.cs
- TreeNodeCollection.cs
- SystemFonts.cs
- AbstractExpressions.cs
- WorkflowRuntimeService.cs
- XPathNodePointer.cs
- ResXDataNode.cs
- ServicePoint.cs
- OleDbSchemaGuid.cs
- ApplicationDirectory.cs
- QilFactory.cs
- SinglePhaseEnlistment.cs
- FamilyTypeface.cs
- sortedlist.cs
- SqlRecordBuffer.cs
- Misc.cs
- PropertyManager.cs
- RuntimeResourceSet.cs
- StylusShape.cs
- _LocalDataStore.cs
- FlowStep.cs
- PathData.cs
- SystemNetworkInterface.cs
- BinaryFormatterSinks.cs
- Vector3DConverter.cs
- LineServicesRun.cs
- DockPattern.cs
- EncoderParameters.cs
- GradientStop.cs
- InfoCardProofToken.cs
- XsltLibrary.cs
- DBCommand.cs
- PolicyStatement.cs
- DataObjectCopyingEventArgs.cs
- UpdateDelegates.Generated.cs
- ClientTarget.cs
- FilteredAttributeCollection.cs
- SQLRoleProvider.cs
- XmlIgnoreAttribute.cs
- TreeNodeCollection.cs
- SoapSchemaMember.cs
- PageTheme.cs
- NumericExpr.cs