Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / XmlNavigatorStack.cs / 1305376 / XmlNavigatorStack.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
namespace System.Xml.Xsl.Runtime {
///
/// A dynamic stack of IXmlNavigators.
///
internal struct XmlNavigatorStack {
private XPathNavigator[] stkNav; // Stack of XPathNavigators
private int sp; // Stack pointer (size of stack)
#if DEBUG
private const int InitialStackSize = 2;
#else
private const int InitialStackSize = 8;
#endif
///
/// Push a navigator onto the stack
///
public void Push(XPathNavigator nav) {
if (this.stkNav == null)
{
this.stkNav = new XPathNavigator[InitialStackSize];
}
else
{
if (this.sp >= this.stkNav.Length)
{
// Resize the stack
XPathNavigator[] stkOld = this.stkNav;
this.stkNav = new XPathNavigator[2 * this.sp];
Array.Copy(stkOld, this.stkNav, this.sp);
}
}
this.stkNav[this.sp++] = nav;
}
///
/// Pop the topmost navigator and return it
///
public XPathNavigator Pop() {
Debug.Assert(!IsEmpty);
return this.stkNav[--this.sp];
}
///
/// Returns the navigator at the top of the stack without adjusting the stack pointer
///
public XPathNavigator Peek() {
Debug.Assert(!IsEmpty);
return this.stkNav[this.sp - 1];
}
///
/// Remove all navigators from the stack
///
public void Reset() {
this.sp = 0;
}
///
/// Returns true if there are no navigators in the stack
///
public bool IsEmpty {
get { return this.sp == 0; }
}
}
}
// 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
- DefaultWorkflowTransactionService.cs
- DbConnectionPoolIdentity.cs
- DefaultTraceListener.cs
- EntityDesignerDataSourceView.cs
- listitem.cs
- sqlcontext.cs
- NativeMethods.cs
- DetailsViewModeEventArgs.cs
- SafeSecurityHandles.cs
- LinqDataSourceContextData.cs
- SrgsOneOf.cs
- HtmlEmptyTagControlBuilder.cs
- SystemIPInterfaceProperties.cs
- OdbcStatementHandle.cs
- PersonalizationState.cs
- securitycriticaldataformultiplegetandset.cs
- DesigntimeLicenseContextSerializer.cs
- TabItemWrapperAutomationPeer.cs
- RenderData.cs
- ArcSegment.cs
- SqlComparer.cs
- DrawingCollection.cs
- FolderLevelBuildProvider.cs
- RoleManagerModule.cs
- IgnoreFlushAndCloseStream.cs
- BlockUIContainer.cs
- ListSortDescriptionCollection.cs
- UrlPropertyAttribute.cs
- HiddenField.cs
- XmlSchemaRedefine.cs
- XamlDesignerSerializationManager.cs
- EntityEntry.cs
- CodeDomExtensionMethods.cs
- DeobfuscatingStream.cs
- DataControlImageButton.cs
- PrinterSettings.cs
- ComplexLine.cs
- InfoCardSymmetricCrypto.cs
- XmlNodeChangedEventManager.cs
- TTSVoice.cs
- OleCmdHelper.cs
- SimpleTextLine.cs
- CookieParameter.cs
- DocumentViewerAutomationPeer.cs
- DoubleLink.cs
- FrameworkElementAutomationPeer.cs
- ProxyManager.cs
- SafeThreadHandle.cs
- MouseActionConverter.cs
- TabOrder.cs
- WindowsStartMenu.cs
- ChildTable.cs
- Itemizer.cs
- Context.cs
- BuilderInfo.cs
- ReturnType.cs
- LastQueryOperator.cs
- SerializationSectionGroup.cs
- OdbcCommandBuilder.cs
- ControlBuilder.cs
- CompositeScriptReferenceEventArgs.cs
- ProfileManager.cs
- WindowsStatusBar.cs
- _SslState.cs
- RegexWriter.cs
- PointAnimationUsingKeyFrames.cs
- SimpleApplicationHost.cs
- XNodeValidator.cs
- AggregateNode.cs
- SerializationObjectManager.cs
- MtomMessageEncoder.cs
- Vector3DCollectionConverter.cs
- DataBindingExpressionBuilder.cs
- TextFormattingConverter.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- CheckBoxStandardAdapter.cs
- PathNode.cs
- TdsParserSessionPool.cs
- ControlIdConverter.cs
- PasswordDeriveBytes.cs
- BitmapCache.cs
- XmlSchemaAnnotated.cs
- TableParaClient.cs
- BuildProviderInstallComponent.cs
- EmptyStringExpandableObjectConverter.cs
- HtmlShim.cs
- LowerCaseStringConverter.cs
- input.cs
- Error.cs
- CodeTypeMemberCollection.cs
- InvokePattern.cs
- BoundField.cs
- ProcessRequestArgs.cs
- CellTreeNode.cs
- XmlQueryRuntime.cs
- HtmlSelect.cs
- ContentPlaceHolderDesigner.cs
- WsatExtendedInformation.cs
- ComponentConverter.cs
- Socket.cs