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
- WebServiceTypeData.cs
- ClientScriptItem.cs
- SrgsDocumentParser.cs
- OfTypeExpression.cs
- webeventbuffer.cs
- DrawingAttributes.cs
- EdmComplexTypeAttribute.cs
- BaseProcessProtocolHandler.cs
- HttpContext.cs
- recordstatefactory.cs
- SafeCertificateContext.cs
- SubtreeProcessor.cs
- DbgCompiler.cs
- WindowAutomationPeer.cs
- BamlCollectionHolder.cs
- UserControlDocumentDesigner.cs
- EnumType.cs
- DeviceFiltersSection.cs
- Timer.cs
- PreviewPageInfo.cs
- ViewManagerAttribute.cs
- SerializerDescriptor.cs
- StylusPoint.cs
- TypeNameConverter.cs
- DynamicRenderer.cs
- Page.cs
- SchemaName.cs
- Rect3D.cs
- AssemblyAssociatedContentFileAttribute.cs
- SQLDateTime.cs
- ReaderWriterLockSlim.cs
- DSASignatureDeformatter.cs
- Int16AnimationBase.cs
- DbParameterCollection.cs
- ISAPIRuntime.cs
- XmlToDatasetMap.cs
- EngineSite.cs
- EventHandlersStore.cs
- SchemaImporterExtension.cs
- EmptyEnumerable.cs
- ListViewItem.cs
- EditorServiceContext.cs
- HostedHttpTransportManager.cs
- Identifier.cs
- XmlSerializableWriter.cs
- SoapIgnoreAttribute.cs
- ZipIOLocalFileBlock.cs
- FontEditor.cs
- VisualStyleTypesAndProperties.cs
- ResponseBodyWriter.cs
- MarkupObject.cs
- uribuilder.cs
- Margins.cs
- BaseInfoTable.cs
- IResourceProvider.cs
- ResXDataNode.cs
- Facet.cs
- DelegateBodyWriter.cs
- SecurityPolicySection.cs
- XmlDataSource.cs
- AssemblyNameProxy.cs
- CodeParameterDeclarationExpression.cs
- ByteStack.cs
- Page.cs
- ServicePoint.cs
- SequentialOutput.cs
- SnapshotChangeTrackingStrategy.cs
- TextContainerHelper.cs
- Filter.cs
- LogPolicy.cs
- FieldCollectionEditor.cs
- ColorEditor.cs
- SpellerInterop.cs
- UniqueConstraint.cs
- SynchronizationLockException.cs
- Tuple.cs
- CaseCqlBlock.cs
- EventMappingSettings.cs
- SkinBuilder.cs
- COM2ColorConverter.cs
- BooleanAnimationBase.cs
- SyndicationCategory.cs
- XsdDataContractExporter.cs
- BindingWorker.cs
- CompiledQuery.cs
- COM2PictureConverter.cs
- QueueAccessMode.cs
- EditingContext.cs
- Helper.cs
- AssemblyAssociatedContentFileAttribute.cs
- Nullable.cs
- ActivityTypeResolver.xaml.cs
- FacetChecker.cs
- MemberCollection.cs
- PerformanceCounter.cs
- PreviewKeyDownEventArgs.cs
- DateTimeParse.cs
- Form.cs
- MessageEnumerator.cs
- ChannelServices.cs