Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / DetectEofStream.cs / 1 / DetectEofStream.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Channels
{
using System.IO;
abstract class DetectEofStream : DelegatingStream
{
bool isAtEof;
protected DetectEofStream(Stream stream)
: base(stream)
{
this.isAtEof = false;
}
protected bool IsAtEof
{
get { return this.isAtEof; }
}
public override int EndRead(IAsyncResult result)
{
int returnValue = base.EndRead(result);
if (returnValue == 0)
{
ReceivedEof();
}
return returnValue;
}
public override int ReadByte()
{
int returnValue = base.ReadByte();
if (returnValue == -1)
{
ReceivedEof();
}
return returnValue;
}
public override int Read(byte[] buffer, int offset, int count)
{
int returnValue = base.Read(buffer, offset, count);
if (returnValue == 0)
{
ReceivedEof();
}
return returnValue;
}
void ReceivedEof()
{
if (!isAtEof)
{
this.isAtEof = true;
this.OnReceivedEof();
}
}
protected virtual void OnReceivedEof()
{
}
}
}
// 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
- CompositeActivityDesigner.cs
- IDispatchConstantAttribute.cs
- EngineSiteSapi.cs
- OpCodes.cs
- Atom10FormatterFactory.cs
- PropertyIDSet.cs
- IndexingContentUnit.cs
- ErrorReporting.cs
- Rule.cs
- BoolExpressionVisitors.cs
- GZipStream.cs
- DefaultBinder.cs
- CustomAttributeFormatException.cs
- InsufficientMemoryException.cs
- BinaryMessageEncoder.cs
- CodeParameterDeclarationExpressionCollection.cs
- PriorityChain.cs
- VectorCollectionValueSerializer.cs
- MediaContext.cs
- Number.cs
- Package.cs
- DetailsViewInsertEventArgs.cs
- ConsoleTraceListener.cs
- XmlSerializerVersionAttribute.cs
- BufferedGraphicsContext.cs
- TypeSystemProvider.cs
- CalendarDesigner.cs
- ToolStripDropDownClosingEventArgs.cs
- ViewSimplifier.cs
- GlyphingCache.cs
- ItemContainerGenerator.cs
- EntityDataSourceStatementEditor.cs
- HtmlListAdapter.cs
- DataServiceContext.cs
- PtsHost.cs
- TdsRecordBufferSetter.cs
- RelatedImageListAttribute.cs
- FixedPageStructure.cs
- SessionPageStateSection.cs
- _IPv6Address.cs
- CodeIterationStatement.cs
- UpdatePanelControlTrigger.cs
- DefaultPrintController.cs
- XmlSchemaType.cs
- Slider.cs
- RepeatButton.cs
- AttributeUsageAttribute.cs
- CompositionAdorner.cs
- CodeGroup.cs
- Substitution.cs
- CmsInterop.cs
- VerificationAttribute.cs
- CurrentTimeZone.cs
- SemanticTag.cs
- DocumentViewerAutomationPeer.cs
- SHA1CryptoServiceProvider.cs
- TimeSpanConverter.cs
- FrameworkContentElement.cs
- RootBrowserWindow.cs
- ReferencedCollectionType.cs
- PageCache.cs
- altserialization.cs
- WindowsGraphicsCacheManager.cs
- securitycriticaldataformultiplegetandset.cs
- SqlParameter.cs
- TypeConverterHelper.cs
- Registry.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- SimpleWebHandlerParser.cs
- SqlTrackingWorkflowInstance.cs
- UnauthorizedAccessException.cs
- GridItemCollection.cs
- CapabilitiesPattern.cs
- BindingOperations.cs
- _DomainName.cs
- SmtpMail.cs
- Compiler.cs
- SubpageParaClient.cs
- EndpointDiscoveryMetadata11.cs
- ReferentialConstraint.cs
- SQLConvert.cs
- NullExtension.cs
- MaterialCollection.cs
- Visual3D.cs
- FlagsAttribute.cs
- IncrementalHitTester.cs
- XPathArrayIterator.cs
- CollectionEditVerbManager.cs
- PenLineJoinValidation.cs
- TypeResolver.cs
- QueryResponse.cs
- CookielessHelper.cs
- CalloutQueueItem.cs
- DataGridViewSelectedRowCollection.cs
- StreamGeometry.cs
- ByteStack.cs
- AccessibleObject.cs
- itemelement.cs
- GlyphElement.cs
- MissingMethodException.cs