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
- FilePrompt.cs
- Debugger.cs
- CTreeGenerator.cs
- XmlSchemaSet.cs
- InputLanguageSource.cs
- WebServiceParameterData.cs
- DecoderNLS.cs
- BufferBuilder.cs
- SmtpTransport.cs
- DuplicateWaitObjectException.cs
- ScrollChrome.cs
- KeyEventArgs.cs
- SystemGatewayIPAddressInformation.cs
- StringReader.cs
- AuthenticatingEventArgs.cs
- ByteViewer.cs
- BitmapEffectOutputConnector.cs
- XmlDownloadManager.cs
- WindowPattern.cs
- FamilyMap.cs
- HostnameComparisonMode.cs
- TextTreeNode.cs
- DirectoryObjectSecurity.cs
- EditorAttributeInfo.cs
- Point3D.cs
- XmlSerializationGeneratedCode.cs
- SocketElement.cs
- GridEntryCollection.cs
- PersonalizationProvider.cs
- UserNameServiceElement.cs
- XmlArrayItemAttributes.cs
- ObjectDataSourceMethodEditor.cs
- UncommonField.cs
- BlurBitmapEffect.cs
- PageThemeParser.cs
- Types.cs
- FileSecurity.cs
- StringValidator.cs
- DynamicEndpointElement.cs
- ResourcePermissionBase.cs
- cache.cs
- UnsafeNativeMethods.cs
- Listbox.cs
- _Connection.cs
- InputElement.cs
- PrivacyNoticeBindingElementImporter.cs
- ToggleButton.cs
- WebPartMovingEventArgs.cs
- DPTypeDescriptorContext.cs
- _NetworkingPerfCounters.cs
- figurelengthconverter.cs
- DataGridColumn.cs
- TwoPhaseCommitProxy.cs
- ConnectionStringEditor.cs
- ExceptQueryOperator.cs
- TimeSpanValidator.cs
- SmtpReplyReaderFactory.cs
- NumericUpDownAccelerationCollection.cs
- TextServicesPropertyRanges.cs
- exports.cs
- ALinqExpressionVisitor.cs
- MailWriter.cs
- XPathDocument.cs
- ISCIIEncoding.cs
- SettingsPropertyCollection.cs
- ConstraintConverter.cs
- ForceCopyBuildProvider.cs
- DataGridToolTip.cs
- SystemNetworkInterface.cs
- SqlDataSourceAdvancedOptionsForm.cs
- EditorZone.cs
- DbTransaction.cs
- DataGridViewLayoutData.cs
- MappingItemCollection.cs
- PrtTicket_Editor.cs
- IntSecurity.cs
- CalloutQueueItem.cs
- TableDetailsCollection.cs
- EdmItemError.cs
- TableItemProviderWrapper.cs
- IntSecurity.cs
- StrokeNode.cs
- StringCollectionMarkupSerializer.cs
- PlatformNotSupportedException.cs
- MetadataArtifactLoaderCompositeResource.cs
- CodeLinePragma.cs
- WindowsListViewItem.cs
- PipelineModuleStepContainer.cs
- TraceSource.cs
- BlockCollection.cs
- Preprocessor.cs
- UnsafeNativeMethods.cs
- VisualTreeUtils.cs
- WorkerRequest.cs
- Encoder.cs
- ToolStripControlHost.cs
- TextBoxBase.cs
- WebBrowserNavigatedEventHandler.cs
- TextDecorationUnitValidation.cs
- FirstQueryOperator.cs