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
- ValidationPropertyAttribute.cs
- Win32.cs
- UnsafeMethods.cs
- indexingfiltermarshaler.cs
- OdbcReferenceCollection.cs
- ArrayConverter.cs
- SqlPersonalizationProvider.cs
- WindowsRichEdit.cs
- RefreshEventArgs.cs
- StandardToolWindows.cs
- RTLAwareMessageBox.cs
- DataGridViewLinkColumn.cs
- SerialPort.cs
- DBCommandBuilder.cs
- HwndHostAutomationPeer.cs
- RuntimeCompatibilityAttribute.cs
- HttpResponseMessageProperty.cs
- InsufficientExecutionStackException.cs
- cookiecollection.cs
- RequestTimeoutManager.cs
- AutoScrollHelper.cs
- MarkupProperty.cs
- DPCustomTypeDescriptor.cs
- ConstNode.cs
- StringFunctions.cs
- TextSearch.cs
- TrackingProfileManager.cs
- odbcmetadatafactory.cs
- AdvancedBindingEditor.cs
- AsyncOperationManager.cs
- ISCIIEncoding.cs
- SamlAuthorizationDecisionStatement.cs
- IndexedString.cs
- XPathDocumentBuilder.cs
- VisualCollection.cs
- MdImport.cs
- HtmlTextBoxAdapter.cs
- DmlSqlGenerator.cs
- SQLInt64Storage.cs
- TemplatingOptionsDialog.cs
- sqlser.cs
- CollectionBuilder.cs
- Trace.cs
- XPathMultyIterator.cs
- TreeNodeStyleCollection.cs
- FixedMaxHeap.cs
- Help.cs
- Convert.cs
- ConfigurationSectionGroup.cs
- ValidateNames.cs
- TemplatedMailWebEventProvider.cs
- ClientScriptManager.cs
- MimeReturn.cs
- CompositeKey.cs
- MetadataCollection.cs
- DrawingContextWalker.cs
- CodeGroup.cs
- TranslateTransform.cs
- AssemblyNameProxy.cs
- ConfigXmlSignificantWhitespace.cs
- CapabilitiesState.cs
- SamlAuthorizationDecisionStatement.cs
- ReflectionServiceProvider.cs
- DeclarativeCatalogPart.cs
- XmlSchemaComplexType.cs
- DataServiceSaveChangesEventArgs.cs
- NullRuntimeConfig.cs
- Pen.cs
- X509CertificateStore.cs
- WebPartEditorOkVerb.cs
- TextProviderWrapper.cs
- VisemeEventArgs.cs
- LocalizationParserHooks.cs
- SrgsText.cs
- DefaultSettingsSection.cs
- MimeTypeAttribute.cs
- OverloadGroupAttribute.cs
- LabelExpression.cs
- SQLDouble.cs
- PhysicalFontFamily.cs
- HandledEventArgs.cs
- LineServicesCallbacks.cs
- NegatedCellConstant.cs
- OrderingExpression.cs
- WebReferenceCollection.cs
- MasterPageBuildProvider.cs
- EntityDataSourceReferenceGroup.cs
- ImageSource.cs
- EntitySet.cs
- BeginGetFileNameFromUserRequest.cs
- BitStack.cs
- EditorZoneBase.cs
- GrammarBuilderWildcard.cs
- OutputCacheSection.cs
- COM2ExtendedTypeConverter.cs
- ComboBoxAutomationPeer.cs
- PageStatePersister.cs
- ItemCheckEvent.cs
- TabControlCancelEvent.cs
- SmtpCommands.cs