Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ApplicationHost.cs
- ToolStripArrowRenderEventArgs.cs
- DateTimeFormat.cs
- Rule.cs
- SafeEventLogWriteHandle.cs
- HMACSHA1.cs
- TransformedBitmap.cs
- NativeMethods.cs
- _DisconnectOverlappedAsyncResult.cs
- XmlFormatExtensionPointAttribute.cs
- StringTraceRecord.cs
- XmlSchemaComplexType.cs
- EventProviderBase.cs
- WebPartDisplayModeEventArgs.cs
- IndicFontClient.cs
- RemoveStoryboard.cs
- ManipulationLogic.cs
- WindowsListViewItem.cs
- DirectionalLight.cs
- SqlDataSourceSelectingEventArgs.cs
- HttpResponseHeader.cs
- ValueUnavailableException.cs
- MatrixTransform3D.cs
- odbcmetadatacollectionnames.cs
- DataGridViewCell.cs
- ElementInit.cs
- PageThemeCodeDomTreeGenerator.cs
- TextBoxRenderer.cs
- SchemaMapping.cs
- XpsThumbnail.cs
- StdValidatorsAndConverters.cs
- ScrollItemPattern.cs
- XhtmlBasicLinkAdapter.cs
- EventManager.cs
- GestureRecognizer.cs
- EntityContainerEmitter.cs
- KoreanLunisolarCalendar.cs
- Pair.cs
- StringUtil.cs
- LazyInitializer.cs
- LinearKeyFrames.cs
- ImageCodecInfoPrivate.cs
- SamlDelegatingWriter.cs
- InputMethodStateChangeEventArgs.cs
- ApplicationInfo.cs
- PagerSettings.cs
- KeyPressEvent.cs
- Animatable.cs
- BuiltInExpr.cs
- ToolStripRenderEventArgs.cs
- TaskHelper.cs
- CodeObjectCreateExpression.cs
- ProcessHostMapPath.cs
- MarshalByValueComponent.cs
- NavigationFailedEventArgs.cs
- DynamicRendererThreadManager.cs
- ValueOfAction.cs
- Compiler.cs
- ChtmlPhoneCallAdapter.cs
- SvcMapFile.cs
- SignatureGenerator.cs
- precedingquery.cs
- HtmlContainerControl.cs
- MruCache.cs
- BaseParser.cs
- AnimationClock.cs
- ControlBuilder.cs
- HatchBrush.cs
- Error.cs
- ScrollChangedEventArgs.cs
- ScriptIgnoreAttribute.cs
- XmlUrlResolver.cs
- DataGridViewCellValueEventArgs.cs
- PageSetupDialog.cs
- XmlILConstructAnalyzer.cs
- StrongTypingException.cs
- ObjectDataSourceDisposingEventArgs.cs
- TreeChangeInfo.cs
- XmlCodeExporter.cs
- PtsContext.cs
- WinEventQueueItem.cs
- IndentedWriter.cs
- RequestCacheValidator.cs
- XsdDuration.cs
- TableLayoutColumnStyleCollection.cs
- EventlogProvider.cs
- EqualityComparer.cs
- ResolveCriteriaApril2005.cs
- BulletDecorator.cs
- WebPartEditorOkVerb.cs
- ProfileServiceManager.cs
- HideDisabledControlAdapter.cs
- MetadataItemEmitter.cs
- IntegerFacetDescriptionElement.cs
- LinkArea.cs
- DecoderExceptionFallback.cs
- Line.cs
- CompositeDispatchFormatter.cs
- MessageSecurityOverHttpElement.cs
- TextTreeExtractElementUndoUnit.cs