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
- WorkflowInstanceExtensionCollection.cs
- ResourcePermissionBase.cs
- LassoSelectionBehavior.cs
- GeneralTransform.cs
- DesignerDataSchemaClass.cs
- ConfigurationCollectionAttribute.cs
- CroppedBitmap.cs
- SQLUtility.cs
- UnaryOperationBinder.cs
- AssemblyAssociatedContentFileAttribute.cs
- CustomError.cs
- RoleManagerEventArgs.cs
- CommandConverter.cs
- UInt64Converter.cs
- PageRequestManager.cs
- CollectionMarkupSerializer.cs
- DbModificationClause.cs
- SqlConnectionManager.cs
- IsolatedStoragePermission.cs
- PartBasedPackageProperties.cs
- RegexStringValidatorAttribute.cs
- CompositeControl.cs
- CodeCompiler.cs
- AnnotationObservableCollection.cs
- ComProxy.cs
- TransformConverter.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- DesignerResources.cs
- adornercollection.cs
- DataObject.cs
- StrokeNodeOperations2.cs
- _ChunkParse.cs
- RightsManagementInformation.cs
- ScriptResourceDefinition.cs
- CodeGenerator.cs
- SafeNativeMethods.cs
- DBDataPermission.cs
- Timer.cs
- XmlNamedNodeMap.cs
- HierarchicalDataSourceControl.cs
- ConfigurationPropertyCollection.cs
- GrammarBuilderWildcard.cs
- SqlUDTStorage.cs
- WeakKeyDictionary.cs
- SortedSet.cs
- SharedStatics.cs
- InProcStateClientManager.cs
- TextViewSelectionProcessor.cs
- SpoolingTaskBase.cs
- DataBoundControlAdapter.cs
- BaseDataListDesigner.cs
- RepeaterItemEventArgs.cs
- ActivityValidator.cs
- Scene3D.cs
- ListBindingConverter.cs
- PartManifestEntry.cs
- XmlSerializerNamespaces.cs
- TimeZone.cs
- ScriptingAuthenticationServiceSection.cs
- HWStack.cs
- SqlClientPermission.cs
- EncoderFallback.cs
- UnauthorizedWebPart.cs
- ErrorLog.cs
- DataControlLinkButton.cs
- LifetimeServices.cs
- DataGridViewLinkColumn.cs
- RawAppCommandInputReport.cs
- Size3D.cs
- SoapDocumentServiceAttribute.cs
- UiaCoreApi.cs
- CodeSubDirectoriesCollection.cs
- DataBindEngine.cs
- WebServiceErrorEvent.cs
- OdbcInfoMessageEvent.cs
- MultipleViewPattern.cs
- ActionItem.cs
- XPathNavigator.cs
- ImageDrawing.cs
- DetailsViewPageEventArgs.cs
- UxThemeWrapper.cs
- WebConfigurationHost.cs
- Button.cs
- DataGridPageChangedEventArgs.cs
- MenuItemBinding.cs
- XmlSerializableServices.cs
- StaticDataManager.cs
- RtfNavigator.cs
- RawStylusSystemGestureInputReport.cs
- ColumnTypeConverter.cs
- _Connection.cs
- WebHttpBinding.cs
- CharEnumerator.cs
- TraceContextEventArgs.cs
- TableRowGroup.cs
- DefaultHttpHandler.cs
- ToolStripGrip.cs
- WindowsIPAddress.cs
- TableFieldsEditor.cs
- SmiEventStream.cs