Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Query / InternalTrees / NodeCounter.cs / 1305376 / NodeCounter.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Diagnostics;
using System.Data.Common;
using md=System.Data.Metadata.Edm;
namespace System.Data.Query.InternalTrees
{
///
/// Counts the number of nodes in a tree
///
internal class NodeCounter : BasicOpVisitorOfT
{
///
/// Public entry point - Calculates the nubmer of nodes in the given subTree
///
///
///
internal static int Count(Node subTree)
{
NodeCounter counter = new NodeCounter();
return counter.VisitNode(subTree);
}
///
/// Common processing for all node types
/// Count = 1 (self) + count of children
///
///
///
protected override int VisitDefault(Node n)
{
int count = 1;
foreach (Node child in n.Children)
{
count += VisitNode(child);
}
return 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
- ComUdtElement.cs
- DefaultTextStoreTextComposition.cs
- JoinCqlBlock.cs
- SHA256.cs
- DataViewManagerListItemTypeDescriptor.cs
- ObjectContextServiceProvider.cs
- ClientTargetSection.cs
- TextParagraphView.cs
- SignedXml.cs
- SecureEnvironment.cs
- IndexedGlyphRun.cs
- TextEffect.cs
- ImageCollectionEditor.cs
- PanelStyle.cs
- ObjectTag.cs
- ValidationHelpers.cs
- URLAttribute.cs
- MergablePropertyAttribute.cs
- TemplateParser.cs
- xmlsaver.cs
- NavigationWindowAutomationPeer.cs
- UidManager.cs
- DatasetMethodGenerator.cs
- FixedPageStructure.cs
- QueryNode.cs
- XmlAnyElementAttributes.cs
- ToolboxItemImageConverter.cs
- MsmqChannelFactoryBase.cs
- IRCollection.cs
- MailAddressCollection.cs
- StateValidator.cs
- StateFinalizationActivity.cs
- RegexCapture.cs
- PrimitiveCodeDomSerializer.cs
- SetIterators.cs
- XamlSerializerUtil.cs
- CodeTypeReferenceExpression.cs
- Knowncolors.cs
- NetworkInformationException.cs
- Utility.cs
- VectorConverter.cs
- GenericParameterDataContract.cs
- HttpRequestWrapper.cs
- DetailsViewInsertEventArgs.cs
- DatagridviewDisplayedBandsData.cs
- SecureEnvironment.cs
- KeyProperty.cs
- JpegBitmapDecoder.cs
- CombinedTcpChannel.cs
- XmlILModule.cs
- ConfigurationSectionGroup.cs
- GPStream.cs
- HtmlLink.cs
- AppDomainFactory.cs
- OptimisticConcurrencyException.cs
- TemplateBamlTreeBuilder.cs
- TrackingServices.cs
- AsyncPostBackErrorEventArgs.cs
- TraceData.cs
- SourceElementsCollection.cs
- Util.cs
- AssemblyResourceLoader.cs
- SID.cs
- SpanIndex.cs
- ExtendedProtectionPolicy.cs
- NativeWindow.cs
- FixUpCollection.cs
- AdornedElementPlaceholder.cs
- ByeOperation11AsyncResult.cs
- ToolbarAUtomationPeer.cs
- Color.cs
- BindingEditor.xaml.cs
- InvalidCastException.cs
- DetailsViewRow.cs
- XmlIgnoreAttribute.cs
- MediaContextNotificationWindow.cs
- DataSourceUtil.cs
- PropertyInformation.cs
- EventProviderWriter.cs
- DateTimeOffset.cs
- ConfigurationValue.cs
- securitycriticaldataClass.cs
- TimeoutException.cs
- GeometryDrawing.cs
- ModelChangedEventArgsImpl.cs
- Error.cs
- IsolatedStorageFile.cs
- SchemaEntity.cs
- DataGridViewTopLeftHeaderCell.cs
- _UriSyntax.cs
- diagnosticsswitches.cs
- MouseEvent.cs
- SymbolDocumentGenerator.cs
- SerializableAttribute.cs
- HandlerWithFactory.cs
- Size.cs
- IconConverter.cs
- WmlLiteralTextAdapter.cs
- SecurityTokenResolver.cs
- CatalogPartCollection.cs