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
- UserControlBuildProvider.cs
- HttpListenerResponse.cs
- VisualStyleElement.cs
- C14NUtil.cs
- SerializationSectionGroup.cs
- Color.cs
- NetworkCredential.cs
- IteratorAsyncResult.cs
- SerializationAttributes.cs
- InvalidWMPVersionException.cs
- CustomTypeDescriptor.cs
- MenuItemBinding.cs
- ProviderBase.cs
- DbDataSourceEnumerator.cs
- Native.cs
- DataGridViewCellParsingEventArgs.cs
- Comparer.cs
- UIElementCollection.cs
- SqlClientWrapperSmiStreamChars.cs
- SchemaCollectionCompiler.cs
- GifBitmapEncoder.cs
- QilScopedVisitor.cs
- TextServicesCompartmentEventSink.cs
- TextElementCollectionHelper.cs
- SynchronizingStream.cs
- CodeExpressionStatement.cs
- HtmlShim.cs
- DocumentsTrace.cs
- ReliabilityContractAttribute.cs
- GPRECT.cs
- ReaderOutput.cs
- UserControl.cs
- StylusPointDescription.cs
- Attachment.cs
- SelectorAutomationPeer.cs
- TextWriter.cs
- SQLGuid.cs
- StagingAreaInputItem.cs
- Rights.cs
- DataGridTableCollection.cs
- OAVariantLib.cs
- ADConnectionHelper.cs
- XmlText.cs
- VirtualPathUtility.cs
- ObjectDataSourceEventArgs.cs
- VisualStyleRenderer.cs
- HttpException.cs
- RelationshipManager.cs
- SQLBinaryStorage.cs
- AssertFilter.cs
- SspiSecurityToken.cs
- DictionaryBase.cs
- SapiInterop.cs
- ControllableStoryboardAction.cs
- DoubleUtil.cs
- SamlAction.cs
- DesignerProperties.cs
- TypeSemantics.cs
- CodeChecksumPragma.cs
- LineGeometry.cs
- HtmlTableRowCollection.cs
- DataColumnCollection.cs
- BreakRecordTable.cs
- IImplicitResourceProvider.cs
- TreeNodeBindingCollection.cs
- SupportsEventValidationAttribute.cs
- EmptyEnumerator.cs
- DataServiceProcessingPipelineEventArgs.cs
- FontSource.cs
- TargetControlTypeCache.cs
- CounterCreationDataCollection.cs
- GridViewRowPresenterBase.cs
- sqlser.cs
- SQLRoleProvider.cs
- CqlIdentifiers.cs
- CreateParams.cs
- TrackBarDesigner.cs
- XmlMtomWriter.cs
- RectangleGeometry.cs
- DataGridViewControlCollection.cs
- UserPersonalizationStateInfo.cs
- FontNamesConverter.cs
- ToolStripRenderEventArgs.cs
- CFStream.cs
- PreDigestedSignedInfo.cs
- ChannelManager.cs
- FieldToken.cs
- EpmHelper.cs
- SurrogateDataContract.cs
- TextDocumentView.cs
- SHA1CryptoServiceProvider.cs
- ModuleConfigurationInfo.cs
- CodeCompiler.cs
- EqualityComparer.cs
- DataSourceCache.cs
- ParserStreamGeometryContext.cs
- CollectionBuilder.cs
- DocumentApplicationState.cs
- MonthChangedEventArgs.cs
- DataFieldConverter.cs