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
- PageTheme.cs
- WindowsSspiNegotiation.cs
- unsafenativemethodsother.cs
- NeutralResourcesLanguageAttribute.cs
- ConfigXmlComment.cs
- XmlToDatasetMap.cs
- ConfigurationValues.cs
- MasterPageCodeDomTreeGenerator.cs
- UnknownWrapper.cs
- RelationshipManager.cs
- ScriptMethodAttribute.cs
- XmlEntity.cs
- HtmlToClrEventProxy.cs
- ScriptingScriptResourceHandlerSection.cs
- StandardBindingOptionalReliableSessionElement.cs
- RTLAwareMessageBox.cs
- CatalogPartCollection.cs
- OraclePermission.cs
- UserNameSecurityToken.cs
- Odbc32.cs
- WebConvert.cs
- ProfileSettingsCollection.cs
- MetafileHeaderWmf.cs
- CheckBoxFlatAdapter.cs
- UInt64.cs
- CompilerWrapper.cs
- KnownIds.cs
- ChangeTracker.cs
- ApplicationId.cs
- EntityProviderServices.cs
- SecurityStateEncoder.cs
- GeometryCollection.cs
- MaterialGroup.cs
- HTMLTagNameToTypeMapper.cs
- OdbcDataReader.cs
- TextTabProperties.cs
- Profiler.cs
- TrackBarDesigner.cs
- Bits.cs
- WindowsAltTab.cs
- XNameConverter.cs
- AutomationProperties.cs
- ResourceReader.cs
- PresentationTraceSources.cs
- HttpModuleCollection.cs
- SmtpException.cs
- SqlDataSourceConfigureSortForm.cs
- __Filters.cs
- ChannelSinkStacks.cs
- SQLInt16Storage.cs
- AstTree.cs
- DbReferenceCollection.cs
- XmlElementAttribute.cs
- GlobalItem.cs
- WebHttpDispatchOperationSelectorData.cs
- CryptoSession.cs
- XhtmlTextWriter.cs
- TagElement.cs
- ClosableStream.cs
- SmiEventSink.cs
- ConfigDefinitionUpdates.cs
- PathFigureCollectionConverter.cs
- ManagedFilter.cs
- SqlNodeAnnotations.cs
- ImageFormat.cs
- UnknownWrapper.cs
- DataChangedEventManager.cs
- CodeDomSerializerException.cs
- FormsAuthenticationUserCollection.cs
- GradientBrush.cs
- TableLayoutCellPaintEventArgs.cs
- DesignerResources.cs
- SimpleHandlerBuildProvider.cs
- GeneralTransformCollection.cs
- Grid.cs
- HttpProfileGroupBase.cs
- GraphicsPath.cs
- FrameworkElement.cs
- DataGridItem.cs
- StringSorter.cs
- DBNull.cs
- ProxyFragment.cs
- DatasetMethodGenerator.cs
- ToolStripProgressBar.cs
- BlockCollection.cs
- MarginsConverter.cs
- MetadataStore.cs
- KeyTimeConverter.cs
- HttpResponseHeader.cs
- TraceListeners.cs
- CharAnimationUsingKeyFrames.cs
- FixedPage.cs
- PrtTicket_Base.cs
- CompositeDispatchFormatter.cs
- MobileCapabilities.cs
- DriveInfo.cs
- StateMachine.cs
- SQLByte.cs
- ConfigurationSectionGroup.cs
- InternalResources.cs