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
- XmlSchemaObjectTable.cs
- AnchoredBlock.cs
- XmlDownloadManager.cs
- TextRangeEditLists.cs
- CodeDirectoryCompiler.cs
- StylusPointProperties.cs
- DoubleAnimationBase.cs
- ConfigurationStrings.cs
- PrintPreviewGraphics.cs
- InnerItemCollectionView.cs
- Form.cs
- Char.cs
- DragStartedEventArgs.cs
- Utils.cs
- FactoryGenerator.cs
- XmlSchemaValidationException.cs
- ProvideValueServiceProvider.cs
- FamilyTypeface.cs
- SettingsPropertyCollection.cs
- RegistryPermission.cs
- ErrorInfoXmlDocument.cs
- LinqDataSourceInsertEventArgs.cs
- HierarchicalDataBoundControlAdapter.cs
- AuthenticationConfig.cs
- SimpleTypeResolver.cs
- Operators.cs
- MaxMessageSizeStream.cs
- LinkedResource.cs
- WebPartConnectionsConfigureVerb.cs
- WsdlEndpointConversionContext.cs
- BorderGapMaskConverter.cs
- EventlogProvider.cs
- DataGridViewBand.cs
- CompositeActivityTypeDescriptor.cs
- StrongNameUtility.cs
- ServiceOperation.cs
- CurrencyManager.cs
- SpellerStatusTable.cs
- TableRowGroup.cs
- DefaultHttpHandler.cs
- InputLanguageSource.cs
- MetadataFile.cs
- DrawTreeNodeEventArgs.cs
- TypeDescriptionProvider.cs
- ThemeDirectoryCompiler.cs
- LineMetrics.cs
- SqlAliaser.cs
- IdentityModelStringsVersion1.cs
- LayoutEvent.cs
- SharedPersonalizationStateInfo.cs
- METAHEADER.cs
- ToolStripProgressBar.cs
- PolicyValidationException.cs
- InputDevice.cs
- PeerMaintainer.cs
- StickyNote.cs
- TypeElement.cs
- DeclarativeCatalogPart.cs
- WebPartRestoreVerb.cs
- ExpressionSelection.cs
- TargetConverter.cs
- EventToken.cs
- XamlToRtfParser.cs
- XamlPoint3DCollectionSerializer.cs
- NotSupportedException.cs
- WmpBitmapDecoder.cs
- TreeNodeBindingCollection.cs
- XsltOutput.cs
- StreamGeometry.cs
- XNodeValidator.cs
- XPathExpr.cs
- InternalDispatchObject.cs
- XmlnsDictionary.cs
- XmlAnyElementAttribute.cs
- ContextStack.cs
- ErrorWrapper.cs
- NavigationProperty.cs
- SubpageParagraph.cs
- AppSettingsExpressionBuilder.cs
- ControlValuePropertyAttribute.cs
- PasswordBoxAutomationPeer.cs
- HostingEnvironmentWrapper.cs
- StylusPoint.cs
- Resources.Designer.cs
- MarshalByValueComponent.cs
- RecipientInfo.cs
- DataContractJsonSerializer.cs
- TableProviderWrapper.cs
- NamespaceDisplay.xaml.cs
- FixedPageStructure.cs
- LogWriteRestartAreaState.cs
- ItemCheckEvent.cs
- LogEntryUtils.cs
- SqlBinder.cs
- CompilerWrapper.cs
- ITreeGenerator.cs
- LocalizedNameDescriptionPair.cs
- ProxyElement.cs
- SecurityChannelFactory.cs
- UpdatePanelTrigger.cs