Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- SecurityContext.cs
- TraceHelpers.cs
- XPathNode.cs
- MemberDomainMap.cs
- webeventbuffer.cs
- SerTrace.cs
- LineGeometry.cs
- ApplicationServiceHelper.cs
- AddDataControlFieldDialog.cs
- nulltextnavigator.cs
- FlowDocumentFormatter.cs
- SqlAliasesReferenced.cs
- TextEditorTables.cs
- PingReply.cs
- XmlSchemaElement.cs
- ConfigurationFileMap.cs
- securitymgrsite.cs
- XsdValidatingReader.cs
- DictionaryContent.cs
- SystemIPGlobalProperties.cs
- XomlCompilerParameters.cs
- Metafile.cs
- Itemizer.cs
- MetadataItem.cs
- WebResponse.cs
- XNameConverter.cs
- WebHostUnsafeNativeMethods.cs
- Triplet.cs
- HwndTarget.cs
- IntegerValidator.cs
- WebPartDisplayModeCancelEventArgs.cs
- TextTreeExtractElementUndoUnit.cs
- ShapingWorkspace.cs
- DataSourceSelectArguments.cs
- BaseTemplateBuildProvider.cs
- SecurityProtocol.cs
- RelationshipConverter.cs
- DirtyTextRange.cs
- DataColumnMapping.cs
- TableLayoutPanelResizeGlyph.cs
- securestring.cs
- SpecularMaterial.cs
- RuleProcessor.cs
- ToolStripCustomTypeDescriptor.cs
- EntityTemplateFactory.cs
- AppDomainProtocolHandler.cs
- RtType.cs
- StringValidatorAttribute.cs
- LightweightCodeGenerator.cs
- Int64Converter.cs
- InstancePersistenceCommand.cs
- SqlDataAdapter.cs
- XmlSchemaComplexContent.cs
- DeviceSpecificChoice.cs
- XmlMembersMapping.cs
- SpStreamWrapper.cs
- BamlResourceDeserializer.cs
- ModelPropertyCollectionImpl.cs
- InlinedLocationReference.cs
- SmtpFailedRecipientsException.cs
- PersistenceTask.cs
- BindingValueChangedEventArgs.cs
- ContainerParaClient.cs
- OdbcTransaction.cs
- ValidationHelper.cs
- IdleTimeoutMonitor.cs
- DrawingServices.cs
- SafeFindHandle.cs
- NumberFormatter.cs
- DelayedRegex.cs
- PenContext.cs
- PermissionSet.cs
- AddressingProperty.cs
- NumberSubstitution.cs
- RegexWriter.cs
- WindowsPrincipal.cs
- TrackBarDesigner.cs
- ObjectListCommandCollection.cs
- DataRelationCollection.cs
- BuildProviderAppliesToAttribute.cs
- validation.cs
- CacheEntry.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- LambdaCompiler.Statements.cs
- FlowDocumentReaderAutomationPeer.cs
- MeshGeometry3D.cs
- CryptoConfig.cs
- UnknownBitmapDecoder.cs
- HoistedLocals.cs
- ScrollChrome.cs
- CharacterString.cs
- FixedDocument.cs
- ZipIOExtraFieldElement.cs
- DataSourceConverter.cs
- MappableObjectManager.cs
- CorrelationManager.cs
- RepeaterItemCollection.cs
- TokenBasedSetEnumerator.cs
- FileSystemInfo.cs
- FormsAuthenticationEventArgs.cs