Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- Peer.cs
- HtmlInputCheckBox.cs
- Content.cs
- HostingEnvironmentException.cs
- DatePicker.cs
- CompositionAdorner.cs
- DetailsViewUpdatedEventArgs.cs
- ExpressionUtilities.cs
- XmlSchemaSubstitutionGroup.cs
- ProcessModule.cs
- DesigntimeLicenseContext.cs
- LinqDataSourceSelectEventArgs.cs
- HandlerFactoryWrapper.cs
- ZipIOBlockManager.cs
- TextParagraphProperties.cs
- CodeBinaryOperatorExpression.cs
- Operators.cs
- SHA512.cs
- FullTrustAssembly.cs
- InternalConfigConfigurationFactory.cs
- RawStylusInputCustomDataList.cs
- WebResourceAttribute.cs
- DocumentGrid.cs
- VectorCollectionValueSerializer.cs
- SoundPlayer.cs
- LongValidatorAttribute.cs
- Types.cs
- CellRelation.cs
- EnvelopedSignatureTransform.cs
- FormsAuthenticationModule.cs
- PnrpPeerResolverElement.cs
- XmlSchemaInferenceException.cs
- IsolatedStoragePermission.cs
- RuntimeCompatibilityAttribute.cs
- OdbcErrorCollection.cs
- SupportingTokenAuthenticatorSpecification.cs
- SmtpLoginAuthenticationModule.cs
- SoapCodeExporter.cs
- ConfigurationPermission.cs
- LinearKeyFrames.cs
- NumberFunctions.cs
- SecurityException.cs
- UnsafeNativeMethods.cs
- GACIdentityPermission.cs
- DbMetaDataColumnNames.cs
- MethodBody.cs
- ParseElement.cs
- DesignerListAdapter.cs
- XamlPointCollectionSerializer.cs
- X509ChainElement.cs
- BitmapCache.cs
- ReadWriteSpinLock.cs
- PrimitiveType.cs
- MdImport.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- XDeferredAxisSource.cs
- BooleanFunctions.cs
- XmlSchemaAnnotated.cs
- StringHelper.cs
- XmlQueryType.cs
- Page.cs
- DispatcherFrame.cs
- FocusWithinProperty.cs
- QilLiteral.cs
- OleDbMetaDataFactory.cs
- PreviewPageInfo.cs
- TargetControlTypeAttribute.cs
- DefaultConfirmation.cs
- DataPager.cs
- SQLRoleProvider.cs
- TemplateBaseAction.cs
- SqlDataSourceSelectingEventArgs.cs
- TextTreeInsertUndoUnit.cs
- CompositeCollection.cs
- HtmlInputButton.cs
- ExtenderControl.cs
- SurrogateSelector.cs
- XDeferredAxisSource.cs
- ApplicationId.cs
- AttributeData.cs
- EventLogRecord.cs
- ValidationSummary.cs
- ClassHandlersStore.cs
- QueryableFilterRepeater.cs
- mediaeventshelper.cs
- CryptoKeySecurity.cs
- ToolStripHighContrastRenderer.cs
- ObjectViewListener.cs
- webclient.cs
- NetworkInformationPermission.cs
- PlatformCulture.cs
- CompilerTypeWithParams.cs
- AddInAdapter.cs
- GlyphingCache.cs
- StyleCollection.cs
- ClientUtils.cs
- DataGridViewSelectedCellCollection.cs
- GlobalizationSection.cs
- CompilationUnit.cs
- EncodingDataItem.cs