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
- FormViewDeleteEventArgs.cs
- DataSysAttribute.cs
- MenuAdapter.cs
- StyleModeStack.cs
- AmbientValueAttribute.cs
- DESCryptoServiceProvider.cs
- PersistenceParticipant.cs
- Comparer.cs
- JsonDeserializer.cs
- StorageScalarPropertyMapping.cs
- DelegatingConfigHost.cs
- SmtpAuthenticationManager.cs
- KnownTypesHelper.cs
- PathData.cs
- AdCreatedEventArgs.cs
- SchemaImporterExtensionsSection.cs
- DuplicateWaitObjectException.cs
- SvcMapFileSerializer.cs
- DockAndAnchorLayout.cs
- SQLString.cs
- sqlnorm.cs
- AuthorizationSection.cs
- LocalValueEnumerator.cs
- QualificationDataItem.cs
- MsmqHostedTransportConfiguration.cs
- EdmValidator.cs
- XPathExpr.cs
- ValueTypeFixupInfo.cs
- BitmapScalingModeValidation.cs
- StringToken.cs
- MailAddressCollection.cs
- CacheMemory.cs
- XmlNodeWriter.cs
- PenLineJoinValidation.cs
- DesignerUtils.cs
- MyContact.cs
- MissingManifestResourceException.cs
- TextEndOfLine.cs
- ObjectListComponentEditor.cs
- SlotInfo.cs
- PersonalizationStateQuery.cs
- HttpRuntimeSection.cs
- DocumentSchemaValidator.cs
- HtmlInputSubmit.cs
- SerializationHelper.cs
- DateTimeSerializationSection.cs
- XmlNavigatorStack.cs
- SqlConnectionHelper.cs
- ProtocolsConfigurationHandler.cs
- EventWaitHandle.cs
- ExecutionProperties.cs
- TraceData.cs
- TemplateInstanceAttribute.cs
- ClientConvert.cs
- TextRunCacheImp.cs
- PriorityQueue.cs
- TextElementEnumerator.cs
- externdll.cs
- UIElementParagraph.cs
- HelpInfo.cs
- PrePostDescendentsWalker.cs
- webproxy.cs
- UnsignedPublishLicense.cs
- WebPartConnectionCollection.cs
- WorkflowApplicationException.cs
- ToolboxItemImageConverter.cs
- TypedDataSourceCodeGenerator.cs
- DataGridState.cs
- ObjectViewListener.cs
- CompletionProxy.cs
- ConstructorNeedsTagAttribute.cs
- ScaleTransform3D.cs
- TableLayoutSettingsTypeConverter.cs
- InvalidDataException.cs
- BinHexDecoder.cs
- DataGridViewHitTestInfo.cs
- PageContentAsyncResult.cs
- PointAnimationUsingKeyFrames.cs
- HandleCollector.cs
- CompositeDispatchFormatter.cs
- GeneralTransform3DTo2D.cs
- ZipIOModeEnforcingStream.cs
- InvalidEnumArgumentException.cs
- SoapEnumAttribute.cs
- SecurityException.cs
- EventSinkHelperWriter.cs
- OverrideMode.cs
- ReachPageContentCollectionSerializerAsync.cs
- UnaryExpressionHelper.cs
- configsystem.cs
- Misc.cs
- SchemaImporterExtensionElementCollection.cs
- ScaleTransform.cs
- InvokeGenerator.cs
- IPEndPoint.cs
- TextEditorSpelling.cs
- MouseActionConverter.cs
- XslCompiledTransform.cs
- BooleanAnimationUsingKeyFrames.cs
- AssemblyNameUtility.cs