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
- System.Data.OracleClient_BID.cs
- ClientSettingsSection.cs
- Utils.cs
- RSAOAEPKeyExchangeFormatter.cs
- DBNull.cs
- RequestCacheEntry.cs
- PerfCounterSection.cs
- DisplayMemberTemplateSelector.cs
- ToolStripSplitButton.cs
- EventLogEntryCollection.cs
- XmlResolver.cs
- TextBlock.cs
- RadialGradientBrush.cs
- Psha1DerivedKeyGeneratorHelper.cs
- ConfigXmlComment.cs
- Accessible.cs
- UIPropertyMetadata.cs
- IBuiltInEvidence.cs
- StylusPointCollection.cs
- RootProjectionNode.cs
- base64Transforms.cs
- TextTrailingCharacterEllipsis.cs
- HorizontalAlignConverter.cs
- DataGridParentRows.cs
- PolicyManager.cs
- PolyLineSegment.cs
- SafeNativeMethods.cs
- DisplayMemberTemplateSelector.cs
- HttpDebugHandler.cs
- MethodRental.cs
- CustomAttribute.cs
- Cell.cs
- RuntimeConfigLKG.cs
- SmiContext.cs
- ProfileGroupSettingsCollection.cs
- OutOfProcStateClientManager.cs
- CultureInfoConverter.cs
- BindingContext.cs
- GridViewSortEventArgs.cs
- NonBatchDirectoryCompiler.cs
- RequestCachePolicyConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- RangeBaseAutomationPeer.cs
- ParallelEnumerableWrapper.cs
- ExclusiveNamedPipeTransportManager.cs
- _emptywebproxy.cs
- HeaderUtility.cs
- NativeObjectSecurity.cs
- LoginViewDesigner.cs
- Rotation3D.cs
- RedirectionProxy.cs
- ClientBuildManagerCallback.cs
- SpeechSynthesizer.cs
- ListViewGroupItemCollection.cs
- DesignerView.xaml.cs
- SafeFileHandle.cs
- ProxyHwnd.cs
- DBNull.cs
- RouteTable.cs
- WCFServiceClientProxyGenerator.cs
- HelpProvider.cs
- XPathNavigator.cs
- MatchAttribute.cs
- EventMemberCodeDomSerializer.cs
- CancelEventArgs.cs
- HostedNamedPipeTransportManager.cs
- ListDictionaryInternal.cs
- AndCondition.cs
- DEREncoding.cs
- ExpressionBuilder.cs
- TemplateLookupAction.cs
- DeadCharTextComposition.cs
- SystemIcons.cs
- SimpleTypeResolver.cs
- SchemaImporter.cs
- WebReferencesBuildProvider.cs
- AttributeUsageAttribute.cs
- QilValidationVisitor.cs
- OdbcConnectionOpen.cs
- Calendar.cs
- DataPagerField.cs
- Stack.cs
- ReachSerializationUtils.cs
- ComponentSerializationService.cs
- WebPartTransformerCollection.cs
- ParallelTimeline.cs
- Profiler.cs
- ResourceDictionary.cs
- TextSearch.cs
- SAPICategories.cs
- AsnEncodedData.cs
- NamespaceEmitter.cs
- RuleSettings.cs
- StylusPointCollection.cs
- DeflateEmulationStream.cs
- ToolStripPanelRow.cs
- Header.cs
- XmlAnyElementAttribute.cs
- ArraySegment.cs
- BodyGlyph.cs