Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / CacheOutputQuery.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AutomationElementIdentifiers.cs
- SynchronizedDispatch.cs
- JournalEntryStack.cs
- ThreadStartException.cs
- StreamGeometry.cs
- LoginView.cs
- Walker.cs
- RemoteHelper.cs
- DebugViewWriter.cs
- FlagsAttribute.cs
- XsltSettings.cs
- LocalFileSettingsProvider.cs
- NotificationContext.cs
- arc.cs
- EventLogPermissionEntryCollection.cs
- DynamicDataResources.Designer.cs
- _Rfc2616CacheValidators.cs
- XmlTypeAttribute.cs
- MobileFormsAuthentication.cs
- GenericTypeParameterBuilder.cs
- WebBrowserHelper.cs
- XDRSchema.cs
- DataSourceListEditor.cs
- SelectedDatesCollection.cs
- Validator.cs
- PolicyException.cs
- DotExpr.cs
- TabControl.cs
- _Connection.cs
- UrlMapping.cs
- XhtmlConformanceSection.cs
- WindowsRegion.cs
- SQLInt16Storage.cs
- NameValuePermission.cs
- ReferenceSchema.cs
- _NegoState.cs
- LogSwitch.cs
- arabicshape.cs
- TextEffectCollection.cs
- HtmlControl.cs
- _RequestLifetimeSetter.cs
- HyperLinkColumn.cs
- SqlClientMetaDataCollectionNames.cs
- UniqueIdentifierService.cs
- ReadOnlyTernaryTree.cs
- ModelUIElement3D.cs
- ComboBoxAutomationPeer.cs
- CoTaskMemHandle.cs
- MetabaseServerConfig.cs
- PagePropertiesChangingEventArgs.cs
- panel.cs
- Restrictions.cs
- SourceInterpreter.cs
- IdentityNotMappedException.cs
- EncryptedPackage.cs
- SpanIndex.cs
- SaveFileDialog.cs
- ExpandCollapseProviderWrapper.cs
- PrintControllerWithStatusDialog.cs
- Ipv6Element.cs
- InvalidContentTypeException.cs
- ItemChangedEventArgs.cs
- SessionStateSection.cs
- ExtentJoinTreeNode.cs
- LinqDataSourceContextEventArgs.cs
- MailWebEventProvider.cs
- PropertyOrder.cs
- PropertyRecord.cs
- GlyphRun.cs
- SamlAttributeStatement.cs
- HierarchicalDataBoundControl.cs
- TypeBuilder.cs
- invalidudtexception.cs
- Int16AnimationUsingKeyFrames.cs
- ArrayConverter.cs
- IteratorFilter.cs
- QilReference.cs
- DataDesignUtil.cs
- Enlistment.cs
- AuthenticatedStream.cs
- TextRunCache.cs
- WindowsFormsLinkLabel.cs
- DBParameter.cs
- path.cs
- DbReferenceCollection.cs
- GenerateHelper.cs
- ValidationHelper.cs
- DataSourceHelper.cs
- EmptyControlCollection.cs
- DetailsViewPagerRow.cs
- DynamicFilterExpression.cs
- XPathBinder.cs
- AuthenticationException.cs
- PolicyStatement.cs
- FormsAuthenticationTicket.cs
- XmlSchemaAny.cs
- returneventsaver.cs
- ProviderCommandInfoUtils.cs
- DCSafeHandle.cs
- PropVariant.cs