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
- CollectionView.cs
- Scalars.cs
- TrustLevelCollection.cs
- ContainerControl.cs
- FlowDocumentScrollViewer.cs
- UnsafeNativeMethodsTablet.cs
- ScriptingSectionGroup.cs
- CodeExpressionCollection.cs
- DesignerRegion.cs
- XhtmlConformanceSection.cs
- Stacktrace.cs
- DocumentStatusResources.cs
- TranslateTransform3D.cs
- Bits.cs
- ImageMap.cs
- DataGridViewHitTestInfo.cs
- Menu.cs
- DiscoveryClient.cs
- ListViewCancelEventArgs.cs
- PersianCalendar.cs
- MasterPageBuildProvider.cs
- AllMembershipCondition.cs
- VisualBasicDesignerHelper.cs
- ProfileElement.cs
- HandlerWithFactory.cs
- AppModelKnownContentFactory.cs
- JsonWriterDelegator.cs
- Profiler.cs
- WebPartZone.cs
- MenuItem.cs
- JsonClassDataContract.cs
- ExtentJoinTreeNode.cs
- SqlUdtInfo.cs
- ToolStripOverflowButton.cs
- sitestring.cs
- UTF7Encoding.cs
- XmlArrayItemAttributes.cs
- UnionExpr.cs
- MissingMemberException.cs
- BufferedOutputStream.cs
- GridEntryCollection.cs
- GridViewSelectEventArgs.cs
- DbTransaction.cs
- DBSqlParserTable.cs
- SqlDependencyUtils.cs
- XmlWriter.cs
- RectangleGeometry.cs
- ObjectSet.cs
- SimplePropertyEntry.cs
- MessageHeader.cs
- CollectionConverter.cs
- DataKeyArray.cs
- RegexWorker.cs
- EventListenerClientSide.cs
- ListViewGroupConverter.cs
- Config.cs
- AnnotationAdorner.cs
- odbcmetadatacolumnnames.cs
- _BaseOverlappedAsyncResult.cs
- PeerEndPoint.cs
- _NegoStream.cs
- HtmlWindowCollection.cs
- VirtualDirectoryMappingCollection.cs
- XmlObjectSerializerWriteContextComplex.cs
- TextEditorContextMenu.cs
- Translator.cs
- SupportsPreviewControlAttribute.cs
- WebServiceResponse.cs
- DataGridColumnReorderingEventArgs.cs
- StopStoryboard.cs
- AttributeCollection.cs
- Serializer.cs
- ObjectNotFoundException.cs
- XmlWellformedWriterHelpers.cs
- BypassElementCollection.cs
- Viewport3DAutomationPeer.cs
- PrimitiveXmlSerializers.cs
- TraceContextEventArgs.cs
- PrintDialog.cs
- Parser.cs
- GridViewDeletedEventArgs.cs
- ActiveDocumentEvent.cs
- RPIdentityRequirement.cs
- CapabilitiesSection.cs
- COM2ExtendedBrowsingHandler.cs
- IndexedGlyphRun.cs
- NameValuePair.cs
- ProviderConnectionPoint.cs
- ToolStripComboBox.cs
- Reference.cs
- TransactionProtocol.cs
- DoubleSumAggregationOperator.cs
- DoubleLink.cs
- Policy.cs
- OracleTimeSpan.cs
- Site.cs
- ObjectRef.cs
- KerberosRequestorSecurityToken.cs
- TextLine.cs
- SqlFacetAttribute.cs