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
- RoleGroupCollection.cs
- CapiHashAlgorithm.cs
- autovalidator.cs
- dataobject.cs
- SqlXmlStorage.cs
- TemplateComponentConnector.cs
- FatalException.cs
- DetailsViewPageEventArgs.cs
- Converter.cs
- StringFunctions.cs
- RowType.cs
- CommonObjectSecurity.cs
- AutomationPropertyInfo.cs
- StrokeSerializer.cs
- ProfileSection.cs
- XmlLanguageConverter.cs
- IUnknownConstantAttribute.cs
- Point3DAnimation.cs
- DataSourceSelectArguments.cs
- XPathNavigatorReader.cs
- EnumerableCollectionView.cs
- InvalidContentTypeException.cs
- SqlRewriteScalarSubqueries.cs
- CodeTypeMemberCollection.cs
- PnrpPermission.cs
- PackageFilter.cs
- ExpressionList.cs
- HttpListenerException.cs
- XDRSchema.cs
- ApplicationSecurityManager.cs
- Simplifier.cs
- ServiceChannel.cs
- RemotingSurrogateSelector.cs
- WmlImageAdapter.cs
- StreamGeometryContext.cs
- VectorValueSerializer.cs
- DisposableCollectionWrapper.cs
- AppModelKnownContentFactory.cs
- DataGridViewLayoutData.cs
- filewebresponse.cs
- ConfigXmlElement.cs
- SmiMetaData.cs
- RsaSecurityTokenAuthenticator.cs
- HttpResponseHeader.cs
- WSHttpBindingBase.cs
- ColumnWidthChangedEvent.cs
- QuotedPrintableStream.cs
- XamlToRtfWriter.cs
- FormViewDeleteEventArgs.cs
- DataBoundControlAdapter.cs
- ContentPosition.cs
- DesignerActionListCollection.cs
- OdbcErrorCollection.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ExpressionEditor.cs
- Configuration.cs
- XmlSerializerNamespaces.cs
- Win32PrintDialog.cs
- SendingRequestEventArgs.cs
- ToolStripDropDownItem.cs
- BulletedList.cs
- DataSourceExpression.cs
- FileLogRecordEnumerator.cs
- XamlReaderHelper.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- DataBindingCollection.cs
- ActiveXSite.cs
- RoutedEventHandlerInfo.cs
- TimeoutValidationAttribute.cs
- SqlBulkCopyColumnMapping.cs
- RSAProtectedConfigurationProvider.cs
- SecurityTokenParameters.cs
- TabletDeviceInfo.cs
- AllMembershipCondition.cs
- OneOfTypeConst.cs
- NameNode.cs
- SelectionProviderWrapper.cs
- Stroke2.cs
- HttpCookiesSection.cs
- SizeF.cs
- RightsManagementPermission.cs
- path.cs
- DynamicILGenerator.cs
- Debug.cs
- StateDesigner.Layouts.cs
- ClassData.cs
- DrawListViewColumnHeaderEventArgs.cs
- InvalidWMPVersionException.cs
- WebPartVerbsEventArgs.cs
- RawMouseInputReport.cs
- RectAnimation.cs
- XmlNamedNodeMap.cs
- LinkLabelLinkClickedEvent.cs
- ClientConfigPaths.cs
- DataGridViewCellStateChangedEventArgs.cs
- KeyNotFoundException.cs
- SoapSchemaExporter.cs
- ToolBarButton.cs
- ReflectionUtil.cs
- TableProviderWrapper.cs