Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / XmlNavigatorStack.cs / 1 / 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. //------------------------------------------------------------------------------ //// 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
- FilterException.cs
- OleDbEnumerator.cs
- XmlToDatasetMap.cs
- CardSpacePolicyElement.cs
- DragCompletedEventArgs.cs
- ContextMenuService.cs
- ListParagraph.cs
- Pair.cs
- RichListBox.cs
- MemoryStream.cs
- FontFamilyValueSerializer.cs
- WindowsGraphicsCacheManager.cs
- StreamInfo.cs
- HistoryEventArgs.cs
- ObjectDataSourceChooseTypePanel.cs
- StylusButtonEventArgs.cs
- MembershipPasswordException.cs
- oledbmetadatacolumnnames.cs
- AuthenticationException.cs
- AnonymousIdentificationSection.cs
- SimpleExpression.cs
- StandardMenuStripVerb.cs
- ExpressionBuilder.cs
- DebugInfoExpression.cs
- ClientSettingsStore.cs
- followingquery.cs
- ArithmeticLiteral.cs
- NumberFormatter.cs
- Reference.cs
- ResolvedKeyFrameEntry.cs
- Converter.cs
- EventProvider.cs
- HostedHttpTransportManager.cs
- BookmarkEventArgs.cs
- XsltArgumentList.cs
- HtmlLink.cs
- ResourceContainerWrapper.cs
- NumberFormatInfo.cs
- ValidatedControlConverter.cs
- NetPeerTcpBindingCollectionElement.cs
- DesignerForm.cs
- ValueOfAction.cs
- InkCanvasSelectionAdorner.cs
- PrintingPermission.cs
- TextSpanModifier.cs
- XmlSchemaException.cs
- BamlVersionHeader.cs
- StateDesigner.TransitionInfo.cs
- HtmlControlDesigner.cs
- TextEditorSelection.cs
- MonthChangedEventArgs.cs
- WebColorConverter.cs
- EventLogPermissionAttribute.cs
- XmlSerializerAssemblyAttribute.cs
- DataSourceView.cs
- ControlPager.cs
- TraceContext.cs
- ObjectItemCollection.cs
- UInt64Converter.cs
- SByte.cs
- SqlFileStream.cs
- DataTable.cs
- CasesDictionary.cs
- MediaElement.cs
- CounterSample.cs
- MappingMetadataHelper.cs
- StorageMappingItemLoader.cs
- NewExpression.cs
- VirtualPathData.cs
- SerializerWriterEventHandlers.cs
- GridViewAutomationPeer.cs
- TileBrush.cs
- StringFreezingAttribute.cs
- EntityViewContainer.cs
- SafeTokenHandle.cs
- HyperlinkAutomationPeer.cs
- RedirectionProxy.cs
- Trace.cs
- FreezableDefaultValueFactory.cs
- DataMisalignedException.cs
- SingleTagSectionHandler.cs
- ActiveXHelper.cs
- DataGridViewCellValueEventArgs.cs
- OleDbParameterCollection.cs
- PersistenceProvider.cs
- SizeAnimation.cs
- ExpressionPrefixAttribute.cs
- DetailsViewPagerRow.cs
- CounterSampleCalculator.cs
- ZipPackage.cs
- ChangePasswordDesigner.cs
- Size.cs
- XmlSchemaSimpleContentExtension.cs
- PropertyChangedEventArgs.cs
- Variant.cs
- FragmentQueryProcessor.cs
- KeyGestureValueSerializer.cs
- Internal.cs
- dataSvcMapFileLoader.cs
- shaper.cs