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 / 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
- SecurityToken.cs
- Number.cs
- LongSumAggregationOperator.cs
- TextFormatter.cs
- RemotingAttributes.cs
- MaskDesignerDialog.cs
- HttpCapabilitiesSectionHandler.cs
- ZoomPercentageConverter.cs
- DocumentViewerBase.cs
- SerializationFieldInfo.cs
- DesignOnlyAttribute.cs
- UserInitiatedNavigationPermission.cs
- GridPattern.cs
- DocumentViewerBaseAutomationPeer.cs
- AccessText.cs
- OleDbMetaDataFactory.cs
- NativeMethods.cs
- HttpCacheParams.cs
- DiscoveryDocument.cs
- ClientScriptManagerWrapper.cs
- InfocardExtendedInformationCollection.cs
- IDispatchConstantAttribute.cs
- SplashScreenNativeMethods.cs
- SocketException.cs
- WindowsListViewItemCheckBox.cs
- ElementAction.cs
- XmlHierarchicalEnumerable.cs
- HttpClientCertificate.cs
- DefaultValueConverter.cs
- CfgParser.cs
- RoleGroup.cs
- Table.cs
- XmlCharCheckingWriter.cs
- TemplatedEditableDesignerRegion.cs
- RoutedCommand.cs
- HebrewNumber.cs
- ListBox.cs
- x509utils.cs
- WebConfigurationHost.cs
- PriorityQueue.cs
- RootProfilePropertySettingsCollection.cs
- RepeatButtonAutomationPeer.cs
- WebControlsSection.cs
- DefaultValidator.cs
- dataprotectionpermission.cs
- CommonDialog.cs
- UserNamePasswordValidator.cs
- CardSpaceException.cs
- RoleServiceManager.cs
- RightsManagementEncryptedStream.cs
- DataTemplateKey.cs
- AffineTransform3D.cs
- MessageDirection.cs
- TextElementAutomationPeer.cs
- HyperLinkStyle.cs
- TextEffectResolver.cs
- RoleManagerModule.cs
- Clipboard.cs
- DataGridPagerStyle.cs
- ConfigXmlWhitespace.cs
- CompiledRegexRunnerFactory.cs
- ValidatedControlConverter.cs
- DataObjectSettingDataEventArgs.cs
- WindowsToolbarAsMenu.cs
- EdgeModeValidation.cs
- QuotaExceededException.cs
- Parser.cs
- XmlFileEditor.cs
- UpdatePanelTrigger.cs
- CheckPair.cs
- SqlXml.cs
- MultiPageTextView.cs
- OrCondition.cs
- HwndSourceParameters.cs
- ThreadStateException.cs
- ButtonColumn.cs
- BreakSafeBase.cs
- StructuredTypeInfo.cs
- DataGridViewRowConverter.cs
- TypeConverterAttribute.cs
- SqlSelectClauseBuilder.cs
- DelegateTypeInfo.cs
- DependencyObjectType.cs
- ProfilePropertyNameValidator.cs
- SecurityRuntime.cs
- ConfigXmlCDataSection.cs
- StylusPointPropertyUnit.cs
- FactoryGenerator.cs
- ConditionalExpression.cs
- basecomparevalidator.cs
- XmlMapping.cs
- ConfigDefinitionUpdates.cs
- ConfigXmlCDataSection.cs
- CaseInsensitiveComparer.cs
- SecurityHelper.cs
- Normalization.cs
- MemoryResponseElement.cs
- PerfService.cs
- DescriptionAttribute.cs
- ListViewAutomationPeer.cs