Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Channels / System / ServiceModel / Channels / XmlBufferedByteStreamReader.cs / 1305376 / XmlBufferedByteStreamReader.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System; using System.IO; using System.Runtime; using System.Xml; class XmlBufferedByteStreamReader : XmlByteStreamReader { ByteStreamBufferedMessageData bufferedMessageData; int offset; static byte[] emptyByteArray = new byte[0]; public XmlBufferedByteStreamReader(ByteStreamBufferedMessageData bufferedMessageData, XmlDictionaryReaderQuotas quotas) : base (quotas) { Fx.Assert(bufferedMessageData != null, "bufferedMessageData is null"); this.bufferedMessageData = bufferedMessageData; this.bufferedMessageData.Open(); this.offset = 0; this.quotas = quotas; this.position = ReaderPosition.None; } protected override void OnClose() { this.bufferedMessageData.Close(); this.bufferedMessageData = null; this.offset = 0; base.OnClose(); } public override int ReadContentAsBase64(byte[] buffer, int index, int count) { EnsureInContent(); ByteStreamMessageUtility.EnsureByteBoundaries(buffer, index, count); if (count == 0) { return 0; } int bytesToCopy = Math.Min(bufferedMessageData.Count - this.offset, count); if (bytesToCopy == 0) { this.position = ReaderPosition.EndElement; return 0; } Buffer.BlockCopy(this.bufferedMessageData.Buffer, this.offset, buffer, index, bytesToCopy); this.offset += bytesToCopy; return bytesToCopy; } public override bool TryGetBase64ContentLength(out int length) { if (!this.IsClosed) { // in ByteStream encoder, we're not concerned about individual xml nodes // therefore we can just return the entire segment of the buffer we're using in this reader. length = bufferedMessageData.Count; return true; } length = -1; return false; } } } // 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
- XmlChildEnumerator.cs
- Rfc4050KeyFormatter.cs
- DispatcherOperation.cs
- GeometryModel3D.cs
- UnmanagedMemoryStream.cs
- DSASignatureFormatter.cs
- OLEDB_Util.cs
- ToggleProviderWrapper.cs
- UrlMapping.cs
- CounterSample.cs
- XmlCharCheckingReader.cs
- StructuralCache.cs
- StatusBarAutomationPeer.cs
- QilCloneVisitor.cs
- SecurityHelper.cs
- SiteMapNodeItem.cs
- Int64Storage.cs
- TrustManagerPromptUI.cs
- ValueType.cs
- ComboBox.cs
- BindingCollection.cs
- ErrorFormatterPage.cs
- SortedDictionary.cs
- InvalidProgramException.cs
- CodeArrayCreateExpression.cs
- RenamedEventArgs.cs
- SocketStream.cs
- HandleTable.cs
- _LocalDataStore.cs
- ShaderRenderModeValidation.cs
- InfoCardMetadataExchangeClient.cs
- AnimationTimeline.cs
- DataGridParentRows.cs
- LinqDataSourceUpdateEventArgs.cs
- DbConnectionPool.cs
- UnknownBitmapEncoder.cs
- KeyGestureConverter.cs
- DataGridHeaderBorder.cs
- TypeUtil.cs
- ChangePassword.cs
- ErrorTolerantObjectWriter.cs
- OleStrCAMarshaler.cs
- _ListenerResponseStream.cs
- GiveFeedbackEventArgs.cs
- FormViewModeEventArgs.cs
- ServiceRouteHandler.cs
- UIPropertyMetadata.cs
- CacheDict.cs
- OdbcConnectionString.cs
- EntitySetRetriever.cs
- COM2ColorConverter.cs
- IndexerNameAttribute.cs
- SqlFormatter.cs
- OutputCacheModule.cs
- NetworkInterface.cs
- QuadraticBezierSegment.cs
- EventListener.cs
- NativeMethods.cs
- CoreSwitches.cs
- IPGlobalProperties.cs
- ProcessHostConfigUtils.cs
- ListControlDataBindingHandler.cs
- ResXBuildProvider.cs
- VisualTarget.cs
- TreeIterator.cs
- Int32Collection.cs
- CodePrimitiveExpression.cs
- AcceleratedTokenProviderState.cs
- SizeConverter.cs
- MessageSmuggler.cs
- SectionInformation.cs
- FilterQueryOptionExpression.cs
- DoubleStorage.cs
- XmlSchemaObjectTable.cs
- ScrollPatternIdentifiers.cs
- EntityDesignerDataSourceView.cs
- StylusPointPropertyUnit.cs
- KeysConverter.cs
- StatusBar.cs
- GeometryValueSerializer.cs
- _TimerThread.cs
- XsdCachingReader.cs
- SecureEnvironment.cs
- RNGCryptoServiceProvider.cs
- LocalValueEnumerator.cs
- HttpCacheVary.cs
- FileCodeGroup.cs
- CompilerHelpers.cs
- DataViewManagerListItemTypeDescriptor.cs
- XmlWhitespace.cs
- DetailsViewInsertEventArgs.cs
- BinaryConverter.cs
- SplitterDesigner.cs
- TabletDeviceInfo.cs
- RequestSecurityToken.cs
- LinkedList.cs
- sqlinternaltransaction.cs
- MethodSet.cs
- XmlSchema.cs
- WebPartConnectionsCloseVerb.cs