Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / CacheOutputQuery.cs / 1305376 / CacheOutputQuery.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.Xml.Xsl; using System.Collections.Generic; internal abstract class CacheOutputQuery : Query { internal Query input; // int count; -- we reusing it here protected ListoutputBuffer; public CacheOutputQuery(Query input) { this.input = input; this.outputBuffer = new List (); this.count = 0; } protected CacheOutputQuery(CacheOutputQuery other) : base(other) { this.input = Clone(other.input); this.outputBuffer = new List (other.outputBuffer); this.count = other.count; } public override void Reset() { this.count = 0; } public override void SetXsltContext(XsltContext context){ input.SetXsltContext(context); } public override object Evaluate(XPathNodeIterator context) { outputBuffer.Clear(); count = 0; return input.Evaluate(context);// This is trick. IDQuery needs this value. Otherwise we would return this. // All subclasses should and would anyway override thismethod and 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 XPathResultType StaticType { get { return XPathResultType.NodeSet; } } 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; } } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); input.PrintQuery(w); w.WriteEndElement(); } } } // 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
- ContextProperty.cs
- ChildTable.cs
- HitTestFilterBehavior.cs
- OuterGlowBitmapEffect.cs
- FontInfo.cs
- GraphicsPath.cs
- LifetimeMonitor.cs
- MenuItemAutomationPeer.cs
- XmlAttribute.cs
- PropertyGridView.cs
- HyperlinkAutomationPeer.cs
- remotingproxy.cs
- PolyLineSegment.cs
- SiteMapHierarchicalDataSourceView.cs
- ExpressionBindingCollection.cs
- TemplateBaseAction.cs
- SapiAttributeParser.cs
- _SingleItemRequestCache.cs
- AppDomainUnloadedException.cs
- BamlCollectionHolder.cs
- EngineSite.cs
- TableItemProviderWrapper.cs
- NCryptSafeHandles.cs
- CreateUserWizardStep.cs
- TypedServiceOperationListItem.cs
- DataSourceDescriptorCollection.cs
- SqlProviderManifest.cs
- _ServiceNameStore.cs
- MemberAccessException.cs
- DBConcurrencyException.cs
- PrePrepareMethodAttribute.cs
- NameSpaceEvent.cs
- SqlBulkCopyColumnMappingCollection.cs
- PublisherMembershipCondition.cs
- SchemaInfo.cs
- Exceptions.cs
- URIFormatException.cs
- AllMembershipCondition.cs
- DesignerForm.cs
- LicenseManager.cs
- ComponentCollection.cs
- NameValueSectionHandler.cs
- GridItemProviderWrapper.cs
- PointF.cs
- FrameworkContextData.cs
- MultilineStringEditor.cs
- ActivityTypeDesigner.xaml.cs
- EvidenceTypeDescriptor.cs
- ChtmlPageAdapter.cs
- JournalEntry.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ZipIOModeEnforcingStream.cs
- ToolStripTextBox.cs
- _BaseOverlappedAsyncResult.cs
- Serializer.cs
- BackoffTimeoutHelper.cs
- DCSafeHandle.cs
- CollectionViewProxy.cs
- SystemWebCachingSectionGroup.cs
- BamlWriter.cs
- ParentControlDesigner.cs
- CommandCollectionEditor.cs
- WorkItem.cs
- PathSegment.cs
- DataGridViewColumnDesigner.cs
- StringPropertyBuilder.cs
- PathGeometry.cs
- UnsettableComboBox.cs
- XPathPatternBuilder.cs
- UnmanagedHandle.cs
- xsdvalidator.cs
- __FastResourceComparer.cs
- RadioButtonStandardAdapter.cs
- DataServiceKeyAttribute.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- SystemDropShadowChrome.cs
- CompiledELinqQueryState.cs
- documentsequencetextcontainer.cs
- ToolboxItemCollection.cs
- _ChunkParse.cs
- StaticTextPointer.cs
- FeatureManager.cs
- CapabilitiesPattern.cs
- IndicShape.cs
- ArrayConverter.cs
- ServiceParser.cs
- LifetimeServices.cs
- SelectionList.cs
- OracleString.cs
- RelOps.cs
- BaseTreeIterator.cs
- _AcceptOverlappedAsyncResult.cs
- Win32PrintDialog.cs
- TextHidden.cs
- XPathPatternParser.cs
- CalendarAutoFormat.cs
- IPAddressCollection.cs
- ScrollProperties.cs
- UriWriter.cs
- OuterGlowBitmapEffect.cs