Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / XPath / Internal / CacheAxisQuery.cs / 1 / 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
- PropertyChange.cs
- PropertyInfoSet.cs
- JsonClassDataContract.cs
- RawKeyboardInputReport.cs
- DynamicField.cs
- GraphicsContainer.cs
- ResumeStoryboard.cs
- ClipboardProcessor.cs
- ButtonField.cs
- PatternMatchRules.cs
- SQLInt64Storage.cs
- ComponentManagerBroker.cs
- Point3D.cs
- ButtonBaseAutomationPeer.cs
- TimeIntervalCollection.cs
- FileChangesMonitor.cs
- ToolStripPanel.cs
- UpdateManifestForBrowserApplication.cs
- DateTimeFormatInfo.cs
- GroupQuery.cs
- IpcClientChannel.cs
- HttpDebugHandler.cs
- BitmapMetadata.cs
- AdornerPresentationContext.cs
- WebEventTraceProvider.cs
- FloaterParaClient.cs
- EndCreateSecurityTokenRequest.cs
- TypeDescriptionProvider.cs
- LoginCancelEventArgs.cs
- PointAnimation.cs
- SpellerHighlightLayer.cs
- QueryCreatedEventArgs.cs
- MSAAEventDispatcher.cs
- XmlExpressionDumper.cs
- CodeNamespace.cs
- ArrayMergeHelper.cs
- SoapBinding.cs
- SqlCommand.cs
- Compiler.cs
- ExtendedPropertyDescriptor.cs
- AttributeParameterInfo.cs
- WebScriptEnablingBehavior.cs
- LinqDataView.cs
- BaseValidator.cs
- Site.cs
- WindowsTokenRoleProvider.cs
- GACMembershipCondition.cs
- ObjectAssociationEndMapping.cs
- XsltLoader.cs
- unsafeIndexingFilterStream.cs
- ProcessHostFactoryHelper.cs
- HostProtectionPermission.cs
- Normalization.cs
- LightweightCodeGenerator.cs
- PartialClassGenerationTaskInternal.cs
- LinkedResourceCollection.cs
- RtfToXamlLexer.cs
- WindowsEditBoxRange.cs
- AsyncWaitHandle.cs
- PreProcessInputEventArgs.cs
- Evidence.cs
- UTF7Encoding.cs
- AssignDesigner.xaml.cs
- TdsParserSessionPool.cs
- ValidatorUtils.cs
- CodeSubDirectoriesCollection.cs
- ToolboxComponentsCreatedEventArgs.cs
- XmlSerializer.cs
- MissingManifestResourceException.cs
- Parser.cs
- MetaModel.cs
- TextCompositionEventArgs.cs
- FlowDocumentView.cs
- WindowsPen.cs
- MetadataSerializer.cs
- Timer.cs
- ISFTagAndGuidCache.cs
- SystemPens.cs
- IResourceProvider.cs
- ConditionChanges.cs
- BindStream.cs
- SpecularMaterial.cs
- Binding.cs
- VisualProxy.cs
- ContainerActivationHelper.cs
- NativeMethodsCLR.cs
- GenericUriParser.cs
- RC2.cs
- _FtpControlStream.cs
- returneventsaver.cs
- SqlDependencyListener.cs
- EditorZoneBase.cs
- TabControl.cs
- WindowsComboBox.cs
- DataError.cs
- PaintEvent.cs
- PageCatalogPartDesigner.cs
- ChannelFactory.cs
- ExeContext.cs
- OdbcUtils.cs