XmlNavigatorStack.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK