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
- StringOutput.cs
- DiffuseMaterial.cs
- DefaultMemberAttribute.cs
- DataControlImageButton.cs
- DrawingDrawingContext.cs
- BaseTreeIterator.cs
- DBSqlParserColumnCollection.cs
- _NestedMultipleAsyncResult.cs
- BidPrivateBase.cs
- ResourceKey.cs
- AttributeCollection.cs
- IgnoreDataMemberAttribute.cs
- QueryValue.cs
- HtmlMeta.cs
- ToolStripCollectionEditor.cs
- CustomPopupPlacement.cs
- ZoneLinkButton.cs
- TextElementEnumerator.cs
- DataGridViewColumnTypePicker.cs
- FontFamilyConverter.cs
- Soap.cs
- SourceInterpreter.cs
- BaseCodePageEncoding.cs
- FormatVersion.cs
- Geometry.cs
- Debug.cs
- ChannelManagerBase.cs
- WebPartCatalogCloseVerb.cs
- Resources.Designer.cs
- FileDialog.cs
- FakeModelItemImpl.cs
- BinaryObjectWriter.cs
- ApplicationContext.cs
- ToolStrip.cs
- ISFClipboardData.cs
- jithelpers.cs
- PersianCalendar.cs
- ResourceProperty.cs
- BasicHttpMessageSecurityElement.cs
- CookieHandler.cs
- NotifyParentPropertyAttribute.cs
- MatrixIndependentAnimationStorage.cs
- Property.cs
- OleStrCAMarshaler.cs
- ProxyFragment.cs
- DeclarativeCatalogPart.cs
- EntityDataSourceStatementEditorForm.cs
- NavigatorInput.cs
- TaiwanCalendar.cs
- InstanceData.cs
- XpsFilter.cs
- XmlSchemaObjectCollection.cs
- ConnectionPointGlyph.cs
- WeakReadOnlyCollection.cs
- RegexRunner.cs
- Conditional.cs
- CorePropertiesFilter.cs
- CodeNamespace.cs
- ObjectManager.cs
- RadioButtonStandardAdapter.cs
- CodeRemoveEventStatement.cs
- LinkedResourceCollection.cs
- SrgsGrammarCompiler.cs
- OracleNumber.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- TextDecorationLocationValidation.cs
- CancellationTokenRegistration.cs
- Asn1IntegerConverter.cs
- XmlUrlEditor.cs
- documentsequencetextcontainer.cs
- ExpressionBuilderContext.cs
- EntityClientCacheKey.cs
- BitmapDownload.cs
- ResolveNameEventArgs.cs
- OleDbError.cs
- WebProxyScriptElement.cs
- HttpCachePolicyBase.cs
- Constraint.cs
- CursorEditor.cs
- RegexMatch.cs
- _OverlappedAsyncResult.cs
- ComponentCollection.cs
- TagNameToTypeMapper.cs
- TabControlDesigner.cs
- TimeoutConverter.cs
- SqlConnectionString.cs
- CompoundFileDeflateTransform.cs
- Literal.cs
- Object.cs
- FormViewModeEventArgs.cs
- Enum.cs
- MobileRedirect.cs
- _ShellExpression.cs
- WebProxyScriptElement.cs
- UnsafeNetInfoNativeMethods.cs
- StrongNameUtility.cs
- DateRangeEvent.cs
- NativeMethods.cs
- ConfigXmlCDataSection.cs
- NativeMethods.cs