Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / ResetableIterator.cs / 1 / 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
- TextTabProperties.cs
- IfAction.cs
- DbProviderFactoriesConfigurationHandler.cs
- SatelliteContractVersionAttribute.cs
- XamlParser.cs
- UserControlParser.cs
- WorkflowInlining.cs
- ExtensionDataReader.cs
- PenContext.cs
- rsa.cs
- KoreanCalendar.cs
- XmlValidatingReader.cs
- ThreadStaticAttribute.cs
- PointLight.cs
- FixedPageStructure.cs
- OciHandle.cs
- SizeValueSerializer.cs
- ProfileModule.cs
- XmlLoader.cs
- DataGridViewLinkColumn.cs
- MouseActionConverter.cs
- AtlasWeb.Designer.cs
- ToolZone.cs
- MimeBasePart.cs
- AssemblyResourceLoader.cs
- TabletCollection.cs
- TextParaClient.cs
- CodeCompiler.cs
- Double.cs
- SiblingIterators.cs
- RestHandler.cs
- CacheVirtualItemsEvent.cs
- TemplateControlBuildProvider.cs
- ExternalCalls.cs
- RichTextBox.cs
- Module.cs
- StringAnimationBase.cs
- SchemaComplexType.cs
- GeneralTransform3DCollection.cs
- FileUtil.cs
- CompositeCollectionView.cs
- PropertyPath.cs
- WebPartCatalogCloseVerb.cs
- KnownAssemblyEntry.cs
- _FtpControlStream.cs
- CdpEqualityComparer.cs
- ElementHostAutomationPeer.cs
- BuildProvidersCompiler.cs
- ClientSettingsProvider.cs
- TreeNodeCollectionEditorDialog.cs
- DataServiceException.cs
- HtmlLink.cs
- SqlTriggerAttribute.cs
- TrackingValidationObjectDictionary.cs
- OrderedDictionary.cs
- HitTestWithPointDrawingContextWalker.cs
- SubstitutionDesigner.cs
- ListViewGroupConverter.cs
- SourceElementsCollection.cs
- PropertyGridCommands.cs
- TargetFrameworkUtil.cs
- ImportContext.cs
- WindowsAuthenticationEventArgs.cs
- EncodingDataItem.cs
- TableLayoutSettings.cs
- Compiler.cs
- BufferBuilder.cs
- ObjRef.cs
- BitmapEffectInput.cs
- LicFileLicenseProvider.cs
- XmlQualifiedName.cs
- ToolBarOverflowPanel.cs
- WebEventCodes.cs
- CompareInfo.cs
- Page.cs
- TableLayoutSettings.cs
- ListViewEditEventArgs.cs
- ScrollEventArgs.cs
- AutoGeneratedFieldProperties.cs
- TransformedBitmap.cs
- ToolStripButton.cs
- Crc32Helper.cs
- FontNamesConverter.cs
- OutputCacheEntry.cs
- DataGridTextBoxColumn.cs
- XmlSerializerNamespaces.cs
- ConnectionInterfaceCollection.cs
- SafeNativeMethods.cs
- SimpleRecyclingCache.cs
- LocalizedNameDescriptionPair.cs
- TargetFrameworkAttribute.cs
- SafeProcessHandle.cs
- CommunicationException.cs
- SectionVisual.cs
- RequestTimeoutManager.cs
- DbCommandDefinition.cs
- HtmlLiteralTextAdapter.cs
- WinFormsUtils.cs
- DrawingCollection.cs
- WmlTextBoxAdapter.cs