Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- StringAnimationUsingKeyFrames.cs
- AnimationException.cs
- Exceptions.cs
- PrimitiveSchema.cs
- Visitor.cs
- MenuCommands.cs
- StringFreezingAttribute.cs
- DBAsyncResult.cs
- CertificateManager.cs
- ObjectDataProvider.cs
- WebPartMinimizeVerb.cs
- ValueTypeFixupInfo.cs
- VBIdentifierDesigner.xaml.cs
- DependencyObject.cs
- SystemResources.cs
- ParallelTimeline.cs
- DefaultWorkflowSchedulerService.cs
- IdentifierService.cs
- BindingExpressionBase.cs
- GenericAuthenticationEventArgs.cs
- EntityKeyElement.cs
- Polyline.cs
- Overlapped.cs
- HtmlInputPassword.cs
- MetadataItem.cs
- BrowserTree.cs
- SqlReorderer.cs
- XPathNodePointer.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- DataTemplateSelector.cs
- ObfuscationAttribute.cs
- PermissionSet.cs
- EntitySqlQueryState.cs
- QueryOperationResponseOfT.cs
- ConfigurationManagerInternal.cs
- OdbcPermission.cs
- TypeLibConverter.cs
- DesignerPerfEventProvider.cs
- ProcessMonitor.cs
- CultureTableRecord.cs
- CheckBoxList.cs
- COM2AboutBoxPropertyDescriptor.cs
- PagedDataSource.cs
- AutoResetEvent.cs
- SelectiveScrollingGrid.cs
- DelegateArgumentValue.cs
- WindowAutomationPeer.cs
- PauseStoryboard.cs
- ObjectViewListener.cs
- StyleReferenceConverter.cs
- TextContainer.cs
- PathNode.cs
- C14NUtil.cs
- CreateUserErrorEventArgs.cs
- ReflectEventDescriptor.cs
- EntityViewContainer.cs
- PrimitiveDataContract.cs
- Simplifier.cs
- TemplatedWizardStep.cs
- WindowsSpinner.cs
- DialogDivider.cs
- APCustomTypeDescriptor.cs
- ToolStripScrollButton.cs
- CmsUtils.cs
- BufferAllocator.cs
- _AuthenticationState.cs
- _SafeNetHandles.cs
- AnimatedTypeHelpers.cs
- CodeBlockBuilder.cs
- FunctionCommandText.cs
- UndirectedGraph.cs
- CircleHotSpot.cs
- GreenMethods.cs
- XmlElement.cs
- HttpValueCollection.cs
- BitmapImage.cs
- CharConverter.cs
- Win32.cs
- EmptyStringExpandableObjectConverter.cs
- ProcessModule.cs
- DataKey.cs
- XmlNullResolver.cs
- BlockExpression.cs
- ThemeDictionaryExtension.cs
- EnumerableRowCollectionExtensions.cs
- CodeNamespaceImport.cs
- BehaviorEditorPart.cs
- WebServiceHandler.cs
- BooleanFunctions.cs
- DataGridViewCellValidatingEventArgs.cs
- DocumentViewerConstants.cs
- DrawingContextDrawingContextWalker.cs
- InstanceStoreQueryResult.cs
- GridViewColumn.cs
- GroupBoxRenderer.cs
- MasterPageBuildProvider.cs
- DispatcherFrame.cs
- SqlCharStream.cs
- CookieParameter.cs
- ExtenderProviderService.cs