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
- CompilerGlobalScopeAttribute.cs
- DecimalConverter.cs
- SimpleHandlerBuildProvider.cs
- TextSegment.cs
- CodeSpit.cs
- UpdateCommand.cs
- RoleManagerEventArgs.cs
- OleDbPermission.cs
- CapabilitiesSection.cs
- TriState.cs
- Rectangle.cs
- PeekCompletedEventArgs.cs
- SmtpNegotiateAuthenticationModule.cs
- DbExpressionRules.cs
- XmlSchemaComplexType.cs
- ImmutableCollection.cs
- ErrorStyle.cs
- SafeRightsManagementQueryHandle.cs
- EntityProviderFactory.cs
- GridViewRowCollection.cs
- ColorMap.cs
- Util.cs
- SizeConverter.cs
- CookieProtection.cs
- DataSet.cs
- PrintPreviewDialog.cs
- Crc32Helper.cs
- ISFClipboardData.cs
- WindowsTreeView.cs
- DefaultValidator.cs
- SizeAnimationBase.cs
- FontInfo.cs
- SqlClientFactory.cs
- WebPartVerb.cs
- ApplicationId.cs
- FileDialog.cs
- CharAnimationBase.cs
- webproxy.cs
- RelationshipType.cs
- PrintEvent.cs
- ColorAnimationUsingKeyFrames.cs
- CategoryAttribute.cs
- Misc.cs
- KeyEvent.cs
- PrincipalPermission.cs
- DefaultAutoFieldGenerator.cs
- ScriptIgnoreAttribute.cs
- WebPermission.cs
- SelectionEditingBehavior.cs
- OutputCacheProfile.cs
- OperationCanceledException.cs
- Completion.cs
- __Error.cs
- RelationshipType.cs
- NetSectionGroup.cs
- XomlSerializationHelpers.cs
- BitmapEffectInput.cs
- LoginUtil.cs
- ChangeConflicts.cs
- MailDefinition.cs
- ProcessModelInfo.cs
- CellTreeNodeVisitors.cs
- ExpandCollapsePattern.cs
- ExpanderAutomationPeer.cs
- ContourSegment.cs
- TypeListConverter.cs
- Variable.cs
- InkCanvasSelection.cs
- RecordManager.cs
- DBDataPermissionAttribute.cs
- WindowsSpinner.cs
- ChangeConflicts.cs
- InternalDuplexBindingElement.cs
- TablePattern.cs
- WebPartHelpVerb.cs
- RegistrationServices.cs
- DocumentSequence.cs
- InvalidPrinterException.cs
- SynchronizationScope.cs
- PrintController.cs
- TextRunCacheImp.cs
- ControlAdapter.cs
- TripleDES.cs
- Int64.cs
- UserControlParser.cs
- TableCellCollection.cs
- StrokeIntersection.cs
- LayoutTable.cs
- PartialCachingAttribute.cs
- FilteredReadOnlyMetadataCollection.cs
- HttpChannelHelper.cs
- TemplatePropertyEntry.cs
- ErrorProvider.cs
- GatewayDefinition.cs
- OutputCacheModule.cs
- SingletonInstanceContextProvider.cs
- XmlHierarchyData.cs
- SimpleBitVector32.cs
- Region.cs
- NavigationCommands.cs