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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ErrorWrapper.cs
- DataListCommandEventArgs.cs
- SqlBooleanizer.cs
- TableSectionStyle.cs
- GorillaCodec.cs
- ThreadSafeList.cs
- Page.cs
- StructuralObject.cs
- KeyedHashAlgorithm.cs
- HtmlUtf8RawTextWriter.cs
- Double.cs
- InputLangChangeEvent.cs
- PolygonHotSpot.cs
- EllipticalNodeOperations.cs
- TextParaLineResult.cs
- SqlDataSourceStatusEventArgs.cs
- HttpHeaderCollection.cs
- Propagator.JoinPropagator.cs
- initElementDictionary.cs
- SqlDataSourceStatusEventArgs.cs
- GridViewDeletedEventArgs.cs
- DoubleLink.cs
- SubMenuStyleCollection.cs
- assertwrapper.cs
- Sentence.cs
- StagingAreaInputItem.cs
- CroppedBitmap.cs
- SmtpReplyReader.cs
- ReadOnlyNameValueCollection.cs
- RoleServiceManager.cs
- Propagator.cs
- Crc32Helper.cs
- CreateParams.cs
- elementinformation.cs
- SingleAnimationBase.cs
- UDPClient.cs
- PropertyMetadata.cs
- MemberMaps.cs
- FaultContext.cs
- formatter.cs
- HexParser.cs
- ThemeableAttribute.cs
- DataGridViewLinkCell.cs
- ChangeTracker.cs
- FileSystemWatcher.cs
- LineUtil.cs
- SqlWriter.cs
- CallbackDebugBehavior.cs
- DivideByZeroException.cs
- RuntimeConfigLKG.cs
- ListView.cs
- TraceSource.cs
- StorageFunctionMapping.cs
- Wildcard.cs
- SafeProcessHandle.cs
- MultiPropertyDescriptorGridEntry.cs
- datacache.cs
- SchemaTableOptionalColumn.cs
- LogConverter.cs
- BitmapEffect.cs
- HandlerElementCollection.cs
- DataGridViewButtonCell.cs
- InheritedPropertyChangedEventArgs.cs
- Bind.cs
- RuntimeUtils.cs
- BaseHashHelper.cs
- EdmValidator.cs
- AdCreatedEventArgs.cs
- MulticastIPAddressInformationCollection.cs
- TCEAdapterGenerator.cs
- StorageTypeMapping.cs
- PointAnimationClockResource.cs
- PerformanceCounterPermissionEntryCollection.cs
- AdRotator.cs
- AutomationTextAttribute.cs
- SoapDocumentServiceAttribute.cs
- WindowsSidIdentity.cs
- TdsParserStateObject.cs
- EdmComplexPropertyAttribute.cs
- AttributeCollection.cs
- TransformerConfigurationWizardBase.cs
- MappingSource.cs
- MethodAccessException.cs
- BaseAppDomainProtocolHandler.cs
- FlowDocumentReader.cs
- AttributeEmitter.cs
- SemaphoreFullException.cs
- TextPointer.cs
- ValueType.cs
- MenuItem.cs
- AgileSafeNativeMemoryHandle.cs
- AddInAttribute.cs
- TreeBuilder.cs
- ProtocolState.cs
- MetadataArtifactLoaderResource.cs
- StylusButton.cs
- AnnotationAdorner.cs
- selecteditemcollection.cs
- AuthorizationSection.cs
- EventLogPermission.cs