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
- Error.cs
- SchemaInfo.cs
- PropertyMetadata.cs
- TextEffect.cs
- CurrentChangingEventManager.cs
- LineGeometry.cs
- ParseChildrenAsPropertiesAttribute.cs
- WebPartConnectionsCancelEventArgs.cs
- ValidatedControlConverter.cs
- ShowExpandedMultiValueConverter.cs
- CachedCompositeFamily.cs
- WinFormsUtils.cs
- BigInt.cs
- SoapFault.cs
- TextAnchor.cs
- ControlBindingsCollection.cs
- FlowPosition.cs
- ConfigurationLocation.cs
- MailMessage.cs
- DetailsViewUpdatedEventArgs.cs
- WebInvokeAttribute.cs
- Paragraph.cs
- SQLBinary.cs
- EntityExpressionVisitor.cs
- LayoutManager.cs
- FactoryRecord.cs
- Button.cs
- TypefaceCollection.cs
- QilDataSource.cs
- DataGridViewSelectedCellCollection.cs
- RepeaterItemCollection.cs
- DoWorkEventArgs.cs
- AuthorizationSection.cs
- NetSectionGroup.cs
- Composition.cs
- MessageQueueAccessControlEntry.cs
- InfoCardTrace.cs
- DrawingContextWalker.cs
- TableItemProviderWrapper.cs
- DbParameterCollection.cs
- DataIdProcessor.cs
- RowParagraph.cs
- SignalGate.cs
- PolicyUnit.cs
- RootBrowserWindow.cs
- SqlBuilder.cs
- HasCopySemanticsAttribute.cs
- DataGridPagerStyle.cs
- ImageMapEventArgs.cs
- DBSchemaTable.cs
- DataSourceComponent.cs
- CryptoConfig.cs
- PersonalizationStateQuery.cs
- TemplatePartAttribute.cs
- DrawToolTipEventArgs.cs
- ScriptMethodAttribute.cs
- Expander.cs
- MiniParameterInfo.cs
- PeerApplication.cs
- MissingFieldException.cs
- ListMarkerSourceInfo.cs
- Int16AnimationUsingKeyFrames.cs
- ClientOperation.cs
- IdentityModelStringsVersion1.cs
- WmfPlaceableFileHeader.cs
- SHA1Managed.cs
- BrushValueSerializer.cs
- CompatibleIComparer.cs
- DoubleLinkListEnumerator.cs
- ComboBox.cs
- SoapBinding.cs
- RestHandler.cs
- NumberFunctions.cs
- ScriptReference.cs
- TabletDevice.cs
- CombinedGeometry.cs
- OpacityConverter.cs
- OpenFileDialog.cs
- StretchValidation.cs
- RequestCachePolicy.cs
- HtmlInputPassword.cs
- OptimizedTemplateContentHelper.cs
- PathFigureCollection.cs
- PathNode.cs
- Array.cs
- ComponentEvent.cs
- ConfigurationProperty.cs
- SqlLiftWhereClauses.cs
- AssemblyInfo.cs
- WorkflowInvoker.cs
- StringExpressionSet.cs
- MethodBody.cs
- DesignerSerializerAttribute.cs
- StrongBox.cs
- Filter.cs
- TextTreeUndo.cs
- CallbackHandler.cs
- MouseOverProperty.cs
- CustomAttributeSerializer.cs
- SqlDataReaderSmi.cs