Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / ResetableIterator.cs / 1305376 / ResetableIterator.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; internal abstract class ResetableIterator : XPathNodeIterator { // the best place for this constructors to be is XPathNodeIterator, to avoid DCR at this time let's ground them here public ResetableIterator() { base.count = -1; } protected ResetableIterator(ResetableIterator other) { base.count = other.count; } protected void ResetCount() { base.count = -1; } public abstract void Reset(); public virtual bool MoveToPosition(int pos) { Reset(); for(int i = CurrentPosition; i < pos ; i ++) { if(!MoveNext()) { return false; } } return true; } // Contruct extension: CurrentPosition should return 0 if MoveNext() wasn't called after Reset() // (behavior is not defined for XPathNodeIterator) public abstract override int CurrentPosition { get; } } } // 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; internal abstract class ResetableIterator : XPathNodeIterator { // the best place for this constructors to be is XPathNodeIterator, to avoid DCR at this time let's ground them here public ResetableIterator() { base.count = -1; } protected ResetableIterator(ResetableIterator other) { base.count = other.count; } protected void ResetCount() { base.count = -1; } public abstract void Reset(); public virtual bool MoveToPosition(int pos) { Reset(); for(int i = CurrentPosition; i < pos ; i ++) { if(!MoveNext()) { return false; } } return true; } // Contruct extension: CurrentPosition should return 0 if MoveNext() wasn't called after Reset() // (behavior is not defined for XPathNodeIterator) public abstract override int CurrentPosition { get; } } } // 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
- ReadOnlyCollectionBase.cs
- GroupDescription.cs
- CompiledRegexRunner.cs
- SingleBodyParameterMessageFormatter.cs
- RIPEMD160Managed.cs
- ZeroOpNode.cs
- XmlSchemaDocumentation.cs
- DataTableMapping.cs
- LocalizedNameDescriptionPair.cs
- ILGenerator.cs
- glyphs.cs
- BitmapPalettes.cs
- InputLanguageSource.cs
- WindowsTab.cs
- Stackframe.cs
- SqlRecordBuffer.cs
- TextFormatterContext.cs
- HebrewNumber.cs
- AudioBase.cs
- RectangleF.cs
- EventPrivateKey.cs
- SerializationInfo.cs
- OdbcEnvironmentHandle.cs
- LocalizableAttribute.cs
- SafeArrayRankMismatchException.cs
- DataTableNewRowEvent.cs
- EnterpriseServicesHelper.cs
- XmlSchemaComplexContent.cs
- SiteMapNode.cs
- TerminatorSinks.cs
- ConfigXmlText.cs
- PathFigureCollectionConverter.cs
- FrameworkRichTextComposition.cs
- IdentityReference.cs
- ObjectViewQueryResultData.cs
- InputElement.cs
- ProcessManager.cs
- DataGridViewMethods.cs
- Exceptions.cs
- DummyDataSource.cs
- EditingMode.cs
- HostingEnvironmentSection.cs
- SafeCertificateContext.cs
- BamlTreeUpdater.cs
- PointAnimation.cs
- SqlConnectionPoolGroupProviderInfo.cs
- Lease.cs
- ConnectionManagementElementCollection.cs
- HandleValueEditor.cs
- ManagementObjectSearcher.cs
- BrowsableAttribute.cs
- DocumentPage.cs
- MimeAnyImporter.cs
- BasicCellRelation.cs
- PreviewPrintController.cs
- StructuralType.cs
- ArrayList.cs
- SamlEvidence.cs
- MatcherBuilder.cs
- BitmapFrameDecode.cs
- PropertyToken.cs
- JsonByteArrayDataContract.cs
- COM2IDispatchConverter.cs
- StringCollection.cs
- GeometryConverter.cs
- SerializerDescriptor.cs
- ToolStripComboBox.cs
- RequestUriProcessor.cs
- WebPartMenuStyle.cs
- MarshalDirectiveException.cs
- CodeNamespaceImport.cs
- DnsEndPoint.cs
- UserNameSecurityTokenAuthenticator.cs
- MouseEvent.cs
- BindingManagerDataErrorEventArgs.cs
- ActiveXSite.cs
- PersonalizationStateQuery.cs
- UserCancellationException.cs
- SqlDataRecord.cs
- exports.cs
- SimpleRecyclingCache.cs
- XPathDocumentNavigator.cs
- DataServiceQuery.cs
- DelegatingTypeDescriptionProvider.cs
- ViewValidator.cs
- ComponentCodeDomSerializer.cs
- ResourceSet.cs
- DataFieldCollectionEditor.cs
- AssemblyName.cs
- InteropEnvironment.cs
- UpdateCommandGenerator.cs
- PerformanceCounter.cs
- SinglePageViewer.cs
- DeviceSpecific.cs
- _Connection.cs
- FrameworkContentElement.cs
- ExpressionBuilderCollection.cs
- WebZone.cs
- MarshalByValueComponent.cs
- ImportContext.cs