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
- WindowsListViewGroup.cs
- ClientCredentialsElement.cs
- UrlAuthFailedErrorFormatter.cs
- CancelEventArgs.cs
- RemotingServices.cs
- BindingListCollectionView.cs
- HwndMouseInputProvider.cs
- Perspective.cs
- SignatureDescription.cs
- VersionPair.cs
- NotFiniteNumberException.cs
- RestHandlerFactory.cs
- InputScopeNameConverter.cs
- Latin1Encoding.cs
- HwndAppCommandInputProvider.cs
- securitymgrsite.cs
- XmlLinkedNode.cs
- WMICapabilities.cs
- TemplatedWizardStep.cs
- ServiceEndpointCollection.cs
- ComponentEvent.cs
- ScriptManagerProxy.cs
- SID.cs
- TakeQueryOptionExpression.cs
- TimeoutException.cs
- SystemBrushes.cs
- FieldToken.cs
- StrokeCollectionConverter.cs
- Properties.cs
- EndOfStreamException.cs
- HwndHostAutomationPeer.cs
- StorageAssociationTypeMapping.cs
- DBNull.cs
- milexports.cs
- EntityContainerAssociationSetEnd.cs
- ReadOnlyCollectionBase.cs
- ScaleTransform3D.cs
- DataBindingsDialog.cs
- ReferencedAssembly.cs
- EventHandlersDesigner.cs
- BufferModesCollection.cs
- XmlQueryTypeFactory.cs
- DbReferenceCollection.cs
- ConstrainedDataObject.cs
- EncodingTable.cs
- Semaphore.cs
- UnaryQueryOperator.cs
- ReturnEventArgs.cs
- PropertyState.cs
- SaveFileDialog.cs
- PaintValueEventArgs.cs
- ReadOnlyDataSourceView.cs
- RowToFieldTransformer.cs
- DefaultHttpHandler.cs
- StateWorkerRequest.cs
- Variant.cs
- StrokeRenderer.cs
- LinqMaximalSubtreeNominator.cs
- GridViewUpdateEventArgs.cs
- AutoGeneratedFieldProperties.cs
- SpeechRecognizer.cs
- GridView.cs
- arclist.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- XPathDocumentNavigator.cs
- ITreeGenerator.cs
- Table.cs
- GraphicsState.cs
- smtpconnection.cs
- safelink.cs
- UriTemplateTrieNode.cs
- FullTextBreakpoint.cs
- _SecureChannel.cs
- OleDbStruct.cs
- TextFormattingConverter.cs
- PinnedBufferMemoryStream.cs
- NotCondition.cs
- CollectionBase.cs
- PropertyDescriptor.cs
- EntityStoreSchemaFilterEntry.cs
- ScrollItemPattern.cs
- SchemaImporter.cs
- XmlArrayItemAttributes.cs
- DeleteWorkflowOwnerCommand.cs
- BaseParser.cs
- RuntimeArgumentHandle.cs
- MailMessage.cs
- Scene3D.cs
- ToolStripItem.cs
- WasEndpointConfigContainer.cs
- PasswordDeriveBytes.cs
- Annotation.cs
- ValidatorUtils.cs
- LicenseManager.cs
- ColumnHeaderCollectionEditor.cs
- BitmapScalingModeValidation.cs
- CommentEmitter.cs
- EntityModelBuildProvider.cs
- ListViewItem.cs
- ping.cs