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
- TrustManager.cs
- DoubleCollection.cs
- BitmapEffectRenderDataResource.cs
- SoapIgnoreAttribute.cs
- FigureHelper.cs
- DrawingAttributesDefaultValueFactory.cs
- ObjectFullSpanRewriter.cs
- RectangleF.cs
- BindableAttribute.cs
- TextRange.cs
- TypeUnloadedException.cs
- BaseTreeIterator.cs
- ListViewItemCollectionEditor.cs
- SqlComparer.cs
- NotConverter.cs
- DecoratedNameAttribute.cs
- ToolStripScrollButton.cs
- CompoundFileStorageReference.cs
- DecimalStorage.cs
- UnionCqlBlock.cs
- DataControlField.cs
- PropertyMap.cs
- ChoiceConverter.cs
- MachineKeyConverter.cs
- WSMessageEncoding.cs
- MarkupCompilePass1.cs
- HotSpotCollectionEditor.cs
- PeerEndPoint.cs
- SqlColumnizer.cs
- ResourceExpressionEditor.cs
- PrivilegeNotHeldException.cs
- TargetConverter.cs
- ObjectContext.cs
- LicenseProviderAttribute.cs
- TextAutomationPeer.cs
- MessageBox.cs
- RecordConverter.cs
- TracedNativeMethods.cs
- Queue.cs
- RegexMatch.cs
- RayHitTestParameters.cs
- PrintEvent.cs
- WebControlAdapter.cs
- BeginStoryboard.cs
- EncryptedPackageFilter.cs
- TimerEventSubscription.cs
- DependencyPropertyKind.cs
- DelegatingTypeDescriptionProvider.cs
- SafeRightsManagementQueryHandle.cs
- QilPatternVisitor.cs
- WaitForChangedResult.cs
- ImageBrush.cs
- ExpressionBuilder.cs
- SQlBooleanStorage.cs
- XmlSerializerAssemblyAttribute.cs
- WebPartPersonalization.cs
- SafeSecurityHandles.cs
- ExceptionRoutedEventArgs.cs
- CancelEventArgs.cs
- WS2007HttpBindingCollectionElement.cs
- CodeNamespaceImportCollection.cs
- IdentityManager.cs
- MissingFieldException.cs
- SessionPageStateSection.cs
- Imaging.cs
- ReachUIElementCollectionSerializer.cs
- ConfigurationLockCollection.cs
- ControlUtil.cs
- DataGridItemAutomationPeer.cs
- XmlHierarchyData.cs
- PropertyNames.cs
- DataContext.cs
- nulltextcontainer.cs
- WebPartConnectionsCloseVerb.cs
- XmlBoundElement.cs
- ExtractCollection.cs
- UrlMappingsSection.cs
- CopyCodeAction.cs
- CustomErrorsSection.cs
- AccessibleObject.cs
- SessionParameter.cs
- MsmqInputSessionChannelListener.cs
- DataReaderContainer.cs
- DataPagerField.cs
- VirtualDirectoryMapping.cs
- CheckBox.cs
- SystemWebExtensionsSectionGroup.cs
- DesignerAdapterUtil.cs
- SmtpException.cs
- UnsafeNativeMethodsTablet.cs
- ConfigurationLocationCollection.cs
- BaseResourcesBuildProvider.cs
- ChannelAcceptor.cs
- AutomationPropertyInfo.cs
- WebControlsSection.cs
- __FastResourceComparer.cs
- Select.cs
- mda.cs
- MimeMapping.cs
- NamedPipeHostedTransportConfiguration.cs