Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- MonthCalendar.cs
- WrappedIUnknown.cs
- HttpStreamMessage.cs
- HideDisabledControlAdapter.cs
- TypeUtils.cs
- UnSafeCharBuffer.cs
- InstanceData.cs
- GrowingArray.cs
- ExtendedPropertyDescriptor.cs
- CalloutQueueItem.cs
- InputLanguageManager.cs
- DetailsViewPagerRow.cs
- SqlStream.cs
- ReceiveSecurityHeaderElementManager.cs
- CompModSwitches.cs
- infer.cs
- ProfileModule.cs
- TableCell.cs
- TypeConverterHelper.cs
- XmlSchemaSimpleContent.cs
- Attributes.cs
- XPathSingletonIterator.cs
- MatrixStack.cs
- Cursors.cs
- HorizontalAlignConverter.cs
- XPathDescendantIterator.cs
- Message.cs
- RSAPKCS1SignatureFormatter.cs
- ApplicationDirectory.cs
- WindowsRebar.cs
- CodeArrayIndexerExpression.cs
- ToolStripDropDownButton.cs
- SchemaObjectWriter.cs
- FolderBrowserDialog.cs
- DeclarativeCatalogPartDesigner.cs
- DynamicILGenerator.cs
- Grant.cs
- ButtonChrome.cs
- GeneratedCodeAttribute.cs
- RoleManagerEventArgs.cs
- SchemaMapping.cs
- PropertyFilterAttribute.cs
- Compress.cs
- PermissionToken.cs
- CodeMemberProperty.cs
- PropertyInfo.cs
- Menu.cs
- AnnotationMap.cs
- XmlLanguageConverter.cs
- TraceFilter.cs
- LongTypeConverter.cs
- ClrProviderManifest.cs
- ClientConvert.cs
- ClientSettingsStore.cs
- EntityDataReader.cs
- Opcode.cs
- SnapLine.cs
- StringFunctions.cs
- Encoder.cs
- Select.cs
- CodeAccessSecurityEngine.cs
- AspNetCacheProfileAttribute.cs
- ConfigErrorGlyph.cs
- DoubleAnimation.cs
- securitycriticaldataClass.cs
- JournalEntry.cs
- MessageDescription.cs
- TraceHandler.cs
- IdentityHolder.cs
- XAMLParseException.cs
- FloaterParagraph.cs
- NameSpaceExtractor.cs
- Brushes.cs
- Identity.cs
- objectresult_tresulttype.cs
- SapiAttributeParser.cs
- DataList.cs
- ComboBoxRenderer.cs
- FrameworkContentElement.cs
- ToolboxItemCollection.cs
- HiddenField.cs
- TypeValidationEventArgs.cs
- TerminateDesigner.cs
- ButtonBaseAdapter.cs
- XmlDictionaryReaderQuotas.cs
- PriorityBinding.cs
- HMACRIPEMD160.cs
- DataGridAddNewRow.cs
- ClassImporter.cs
- ListBoxItem.cs
- ResourcesBuildProvider.cs
- XsdDateTime.cs
- BitStack.cs
- TabPage.cs
- SystemParameters.cs
- StorageAssociationSetMapping.cs
- TextBreakpoint.cs
- RegexFCD.cs
- Pair.cs
- BitmapEffectDrawing.cs