Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathSelectionIterator.cs / 1 / XPathSelectionIterator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Globalization; // We need this wrapper object to: // 1. Calculate position // 2. Protect internal query.Current from user who may call MoveNext(). internal class XPathSelectionIterator : ResetableIterator { private XPathNavigator nav; private Query query; private int position; internal XPathSelectionIterator(XPathNavigator nav, Query query) { this.nav = nav.Clone(); this.query = query; } protected XPathSelectionIterator(XPathSelectionIterator it) { this.nav = it.nav.Clone(); this.query = (Query) it.query.Clone(); this.position = it.position; } public override void Reset() { this.query.Reset(); } public override bool MoveNext() { XPathNavigator n = query.Advance(); if( n != null ) { position++; if (!nav.MoveTo(n)) { nav = n.Clone(); } return true; } return false; } public override int Count { get { return query.Count; } } public override XPathNavigator Current { get { return nav; } } public override int CurrentPosition { get { return position; } } public override XPathNodeIterator Clone() { return new XPathSelectionIterator(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Globalization; // We need this wrapper object to: // 1. Calculate position // 2. Protect internal query.Current from user who may call MoveNext(). internal class XPathSelectionIterator : ResetableIterator { private XPathNavigator nav; private Query query; private int position; internal XPathSelectionIterator(XPathNavigator nav, Query query) { this.nav = nav.Clone(); this.query = query; } protected XPathSelectionIterator(XPathSelectionIterator it) { this.nav = it.nav.Clone(); this.query = (Query) it.query.Clone(); this.position = it.position; } public override void Reset() { this.query.Reset(); } public override bool MoveNext() { XPathNavigator n = query.Advance(); if( n != null ) { position++; if (!nav.MoveTo(n)) { nav = n.Clone(); } return true; } return false; } public override int Count { get { return query.Count; } } public override XPathNavigator Current { get { return nav; } } public override int CurrentPosition { get { return position; } } public override XPathNodeIterator Clone() { return new XPathSelectionIterator(this); } } } // 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
- CorrelationQuery.cs
- EdgeModeValidation.cs
- PropertiesTab.cs
- MembershipValidatePasswordEventArgs.cs
- InlineUIContainer.cs
- MultiDataTrigger.cs
- TextDecorationUnitValidation.cs
- TextPointer.cs
- HtmlGenericControl.cs
- DropShadowEffect.cs
- SimpleExpression.cs
- PropertyKey.cs
- EventLevel.cs
- UIPermission.cs
- PersistencePipeline.cs
- BufferModesCollection.cs
- TrackingMemoryStream.cs
- BitmapDownload.cs
- PresentationTraceSources.cs
- EmissiveMaterial.cs
- NumericUpDownAccelerationCollection.cs
- TraceContextEventArgs.cs
- IisTraceListener.cs
- WebPartCatalogCloseVerb.cs
- ValidateNames.cs
- CommandExpr.cs
- CompilerGlobalScopeAttribute.cs
- TextBoxRenderer.cs
- CounterCreationDataCollection.cs
- SqlWorkflowInstanceStoreLock.cs
- ContentElement.cs
- TypeSystem.cs
- AudioFileOut.cs
- ParallelTimeline.cs
- SignedXmlDebugLog.cs
- HashAlgorithm.cs
- SurrogateEncoder.cs
- OutputCacheProfile.cs
- FileEnumerator.cs
- EditingContext.cs
- ValuePatternIdentifiers.cs
- XmlSchemaSequence.cs
- XmlStreamStore.cs
- Utilities.cs
- DataSpaceManager.cs
- TypeDelegator.cs
- fixedPageContentExtractor.cs
- QueryResponse.cs
- Button.cs
- FolderNameEditor.cs
- NewArrayExpression.cs
- SkinBuilder.cs
- CodeTypeDeclarationCollection.cs
- _AutoWebProxyScriptEngine.cs
- CollectionConverter.cs
- BinaryFormatterWriter.cs
- Connector.cs
- ExtensionFile.cs
- WebMethodAttribute.cs
- SequentialUshortCollection.cs
- SqlDataSourceCache.cs
- BamlReader.cs
- ToolboxItem.cs
- CustomAttributeFormatException.cs
- ISFClipboardData.cs
- ImportException.cs
- ExpressionParser.cs
- DrawingBrush.cs
- TypedReference.cs
- Int32AnimationBase.cs
- EventListenerClientSide.cs
- BypassElement.cs
- CngUIPolicy.cs
- SafeNativeMethods.cs
- StyleSelector.cs
- ErrorTableItemStyle.cs
- OuterGlowBitmapEffect.cs
- ImpersonateTokenRef.cs
- Internal.cs
- SafeNativeMethodsOther.cs
- xmlsaver.cs
- BitmapEffectGeneralTransform.cs
- IpcPort.cs
- RpcCryptoContext.cs
- SchemaSetCompiler.cs
- StreamedFramingRequestChannel.cs
- ConfigXmlElement.cs
- FilterableData.cs
- TagPrefixCollection.cs
- DateBoldEvent.cs
- IHttpResponseInternal.cs
- EdmConstants.cs
- XmlSchemaException.cs
- CacheSection.cs
- HScrollProperties.cs
- XmlElement.cs
- MessageBuilder.cs
- DrawToolTipEventArgs.cs
- FactoryGenerator.cs
- SqlTopReducer.cs