Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / QueryOperators / Inlined / InlinedAggregationOperatorEnumerator.cs / 1305376 / InlinedAggregationOperatorEnumerator.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // InlinedAggregationOperatorEnumerator.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Threading; namespace System.Linq.Parallel { //---------------------------------------------------------------------------------------- // Inlined aggregate operators for finding the min/max values for primitives (int, long, float, // double, decimal). Versions are also offered for the nullable primitives (int?, long?, float?, // double?, decimal?), which differ slightly in behavior: they return a null value for empty // streams, whereas the ordinary primitive versions throw. // //--------------------------------------------------------------------------------------- // Inlined average operators for primitives (int, long, float, double, decimal), and the // nullable variants. The difference between the nromal and nullable variety is that // nulls are skipped in tallying the count and sum for the average. // ////// A class with some shared implementation between all aggregation enumerators. /// ///internal abstract class InlinedAggregationOperatorEnumerator : QueryOperatorEnumerator { private int m_partitionIndex; // This partition's unique index. protected CancellationToken m_cancellationToken; //--------------------------------------------------------------------------------------- // Instantiates a new aggregation operator. // internal InlinedAggregationOperatorEnumerator(int partitionIndex, CancellationToken cancellationToken) { m_partitionIndex = partitionIndex; m_cancellationToken = cancellationToken; } //--------------------------------------------------------------------------------------- // Tallies up the sum of the underlying data source, walking the entire thing the first // time MoveNext is called on this object. There is a boilerplate variant used by callers, // and then one that is used for extensibility by subclasses. // internal sealed override bool MoveNext(ref TIntermediate currentElement, ref int currentKey) { if (MoveNextCore(ref currentElement)) { // A reduction's "index" is the same as its partition number. currentKey = m_partitionIndex; return true; } return false; } protected abstract bool MoveNextCore(ref TIntermediate currentElement); } } // 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
- DataSourceSelectArguments.cs
- DefaultMergeHelper.cs
- WorkflowMessageEventHandler.cs
- COM2AboutBoxPropertyDescriptor.cs
- TrackingMemoryStream.cs
- SqlVisitor.cs
- Single.cs
- WebPartsSection.cs
- XPathAxisIterator.cs
- MultipartContentParser.cs
- DataGridViewCellPaintingEventArgs.cs
- TextDecorationCollection.cs
- XmlElement.cs
- BaseTreeIterator.cs
- TableProviderWrapper.cs
- TextFormatterHost.cs
- RuntimeResourceSet.cs
- DataGridItemCollection.cs
- DataSourceNameHandler.cs
- Transform.cs
- ObjectQueryExecutionPlan.cs
- EntityParameterCollection.cs
- ExceptionHelpers.cs
- ApplicationSecurityManager.cs
- ToolboxItemWrapper.cs
- TaiwanCalendar.cs
- NavigationProgressEventArgs.cs
- SpeakCompletedEventArgs.cs
- FixedSOMLineRanges.cs
- WebPartConnectionCollection.cs
- HMACSHA512.cs
- TransformerInfoCollection.cs
- HostedBindingBehavior.cs
- IItemProperties.cs
- CheckBoxStandardAdapter.cs
- DataReceivedEventArgs.cs
- FunctionNode.cs
- BaseComponentEditor.cs
- WindowCollection.cs
- ErrorRuntimeConfig.cs
- ResourceDictionary.cs
- itemelement.cs
- HebrewNumber.cs
- BrowserInteropHelper.cs
- SizeLimitedCache.cs
- ProcessHostServerConfig.cs
- SerializableAttribute.cs
- ProviderMetadataCachedInformation.cs
- ViewEventArgs.cs
- MetafileHeaderWmf.cs
- HuffCodec.cs
- RepeatInfo.cs
- WriteFileContext.cs
- Rect.cs
- SuppressIldasmAttribute.cs
- ViewgenContext.cs
- CreateRefExpr.cs
- TextOnlyOutput.cs
- OleDbEnumerator.cs
- SqlDependency.cs
- X509ClientCertificateCredentialsElement.cs
- PermissionSet.cs
- CollectionConverter.cs
- MappingModelBuildProvider.cs
- PathNode.cs
- MemoryMappedViewStream.cs
- NetworkInformationException.cs
- filewebresponse.cs
- TreeViewBindingsEditor.cs
- TextServicesLoader.cs
- NumberFormatter.cs
- PseudoWebRequest.cs
- DocComment.cs
- DefaultTextStore.cs
- FormViewUpdateEventArgs.cs
- BitVec.cs
- SettingsPropertyCollection.cs
- DbProviderFactory.cs
- Path.cs
- SqlHelper.cs
- StylusPointPropertyInfo.cs
- TrackingCondition.cs
- FileStream.cs
- ToolStripSplitStackLayout.cs
- TargetPerspective.cs
- BinaryMessageEncoder.cs
- WizardStepCollectionEditor.cs
- TypeConverterValueSerializer.cs
- WMIInterop.cs
- SspiNegotiationTokenProviderState.cs
- LayoutTable.cs
- IPHostEntry.cs
- FileChangesMonitor.cs
- Exception.cs
- URI.cs
- AppSettingsReader.cs
- SetterBase.cs
- EncodingInfo.cs
- CustomWebEventKey.cs
- SelectionUIHandler.cs