Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- IntegrationExceptionEventArgs.cs
- ExpressionWriter.cs
- ByeOperation11AsyncResult.cs
- SelectionList.cs
- ArgumentsParser.cs
- FontDialog.cs
- DataFormats.cs
- ArraySubsetEnumerator.cs
- SiteMapNodeCollection.cs
- LambdaSerializationException.cs
- AbandonedMutexException.cs
- RijndaelManagedTransform.cs
- LazyInitializer.cs
- Crypto.cs
- WebPartCatalogCloseVerb.cs
- RtfFormatStack.cs
- ContentPosition.cs
- IPHostEntry.cs
- DataObjectAttribute.cs
- TypeSystem.cs
- EpmSourcePathSegment.cs
- KeyValuePair.cs
- DelegatingHeader.cs
- VirtualPathUtility.cs
- EventProviderBase.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- FieldMetadata.cs
- Rfc4050KeyFormatter.cs
- FixedDocument.cs
- BinaryFormatterWriter.cs
- QueryConverter.cs
- ProcessModuleDesigner.cs
- BinaryEditor.cs
- PrimaryKeyTypeConverter.cs
- SqlFacetAttribute.cs
- Compress.cs
- EventTask.cs
- XmlNodeList.cs
- ConfigXmlText.cs
- TextEmbeddedObject.cs
- TokenBasedSetEnumerator.cs
- Receive.cs
- WindowsGraphics2.cs
- BindValidator.cs
- FlowDecisionLabelFeature.cs
- AccessDataSource.cs
- ConstructorNeedsTagAttribute.cs
- ParamArrayAttribute.cs
- DecoderBestFitFallback.cs
- NestPullup.cs
- Delegate.cs
- CheckBoxList.cs
- SuppressMergeCheckAttribute.cs
- DataControlCommands.cs
- WebPartConnectionsConfigureVerb.cs
- __Error.cs
- BooleanFunctions.cs
- PersonalizationState.cs
- WebPartUtil.cs
- ResourcePermissionBase.cs
- FrameworkTemplate.cs
- RsaSecurityKey.cs
- CompiledELinqQueryState.cs
- IndentedTextWriter.cs
- Avt.cs
- LexicalChunk.cs
- MaskDescriptors.cs
- BindingManagerDataErrorEventArgs.cs
- ToolStripArrowRenderEventArgs.cs
- TimeManager.cs
- WebResponse.cs
- PenCursorManager.cs
- Literal.cs
- _AutoWebProxyScriptEngine.cs
- SoapSchemaImporter.cs
- CompilerResults.cs
- MessageBox.cs
- ClientSettingsSection.cs
- MenuItem.cs
- SqlDataSourceWizardForm.cs
- ClientConvert.cs
- MetadataUtil.cs
- MetadataElement.cs
- RotationValidation.cs
- WebPartAddingEventArgs.cs
- ColorPalette.cs
- GenericTextProperties.cs
- SqlDataSourceQueryEditor.cs
- TriggerAction.cs
- GridItemProviderWrapper.cs
- DocumentViewerConstants.cs
- NativeActivity.cs
- ArrayTypeMismatchException.cs
- Vector3dCollection.cs
- ClientTarget.cs
- RawAppCommandInputReport.cs
- CheckoutException.cs
- DynamicDataResources.Designer.cs
- QuaternionRotation3D.cs
- Nullable.cs