Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / CacheAxisQuery.cs / 1305376 / CacheAxisQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Collections.Generic; internal abstract class CacheAxisQuery : BaseAxisQuery { // int count; -- we reusing it here protected ListoutputBuffer; public CacheAxisQuery(Query qyInput, string name, string prefix, XPathNodeType typeTest) : base(qyInput, name, prefix, typeTest) { this.outputBuffer = new List (); this.count = 0; } protected CacheAxisQuery(CacheAxisQuery other) : base(other) { this.outputBuffer = new List (other.outputBuffer); this.count = other.count; } public override void Reset() { this.count = 0; } public override object Evaluate(XPathNodeIterator context) { base.Evaluate(context); outputBuffer.Clear(); return this; } public override XPathNavigator Advance() { Debug.Assert(0 <= count && count <= outputBuffer.Count); if (count < outputBuffer.Count) { return outputBuffer[count++]; } return null; } public override XPathNavigator Current { get { Debug.Assert(0 <= count && count <= outputBuffer.Count); if (count == 0) { return null; } return outputBuffer[count - 1]; } } public override int CurrentPosition { get { return count; } } public override int Count { get { return outputBuffer.Count; } } public override QueryProps Properties { get { return QueryProps.Merge | QueryProps.Cached | QueryProps.Position | QueryProps.Count; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Collections.Generic; internal abstract class CacheAxisQuery : BaseAxisQuery { // int count; -- we reusing it here protected ListoutputBuffer; public CacheAxisQuery(Query qyInput, string name, string prefix, XPathNodeType typeTest) : base(qyInput, name, prefix, typeTest) { this.outputBuffer = new List (); this.count = 0; } protected CacheAxisQuery(CacheAxisQuery other) : base(other) { this.outputBuffer = new List (other.outputBuffer); this.count = other.count; } public override void Reset() { this.count = 0; } public override object Evaluate(XPathNodeIterator context) { base.Evaluate(context); outputBuffer.Clear(); return this; } public override XPathNavigator Advance() { Debug.Assert(0 <= count && count <= outputBuffer.Count); if (count < outputBuffer.Count) { return outputBuffer[count++]; } return null; } public override XPathNavigator Current { get { Debug.Assert(0 <= count && count <= outputBuffer.Count); if (count == 0) { return null; } return outputBuffer[count - 1]; } } public override int CurrentPosition { get { return count; } } public override int Count { get { return outputBuffer.Count; } } public override QueryProps Properties { get { return QueryProps.Merge | QueryProps.Cached | QueryProps.Position | QueryProps.Count; } } } } // 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
- TemplateBindingExpression.cs
- WindowClosedEventArgs.cs
- WebPartRestoreVerb.cs
- BaseProcessProtocolHandler.cs
- MissingFieldException.cs
- ProvidersHelper.cs
- ByteStreamGeometryContext.cs
- PseudoWebRequest.cs
- WebPartUtil.cs
- DetailsViewUpdatedEventArgs.cs
- PolicyStatement.cs
- ObjectParameter.cs
- ClientRuntimeConfig.cs
- precedingsibling.cs
- SizeF.cs
- LabelAutomationPeer.cs
- TdsParserStateObject.cs
- Path.cs
- WebPartEditorApplyVerb.cs
- VerificationException.cs
- XmlDataProvider.cs
- ConfigurationStrings.cs
- TdsParameterSetter.cs
- XPathException.cs
- CompiledWorkflowDefinitionContext.cs
- IgnoreSectionHandler.cs
- _UriSyntax.cs
- SharedRuntimeState.cs
- AudioBase.cs
- SchemaNamespaceManager.cs
- TextEffect.cs
- HtmlMeta.cs
- AppDomainInstanceProvider.cs
- OletxCommittableTransaction.cs
- StaticTextPointer.cs
- PrintPreviewGraphics.cs
- NativeActivityTransactionContext.cs
- TimeSpanOrInfiniteValidator.cs
- DataGridViewMethods.cs
- handlecollector.cs
- ConfigurationUtility.cs
- ResourceAssociationSetEnd.cs
- Speller.cs
- DataBindingValueUIHandler.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- ProgressBarRenderer.cs
- SqlDelegatedTransaction.cs
- WsdlExporter.cs
- DataShape.cs
- XmlSchemaImport.cs
- Int16Animation.cs
- QueryStringParameter.cs
- GregorianCalendar.cs
- MatrixKeyFrameCollection.cs
- SqlFacetAttribute.cs
- cookie.cs
- ListViewItem.cs
- PropertyTab.cs
- ProvidersHelper.cs
- RightsManagementEncryptionTransform.cs
- TdsParserSessionPool.cs
- PerfCounters.cs
- OracleException.cs
- HttpApplicationFactory.cs
- EditorZone.cs
- SchemaAttDef.cs
- ColumnBinding.cs
- PageWrapper.cs
- DataMemberFieldConverter.cs
- VirtualDirectoryMapping.cs
- Int32RectConverter.cs
- PasswordTextNavigator.cs
- QilIterator.cs
- MatrixValueSerializer.cs
- EditBehavior.cs
- PointF.cs
- ObjectQueryExecutionPlan.cs
- ToolStripContentPanelRenderEventArgs.cs
- ConfigurationLocation.cs
- ActivitySurrogateSelector.cs
- UpdateCompiler.cs
- CompressedStack.cs
- RepeatButton.cs
- DispatchOperationRuntime.cs
- Debug.cs
- WebPartEditorOkVerb.cs
- ExpressionConverter.cs
- DataFieldConverter.cs
- PackageRelationshipSelector.cs
- DecimalConverter.cs
- Span.cs
- ListParaClient.cs
- WorkflowApplicationAbortedException.cs
- WebPartZoneCollection.cs
- DrawingContextWalker.cs
- PublisherMembershipCondition.cs
- FileSystemInfo.cs
- DbFunctionCommandTree.cs
- EncodingNLS.cs
- AmbientEnvironment.cs