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
- PathSegmentCollection.cs
- TraceUtility.cs
- EventSinkActivity.cs
- DocobjHost.cs
- DoubleAnimationUsingKeyFrames.cs
- DataColumnMappingCollection.cs
- LicFileLicenseProvider.cs
- WebServiceClientProxyGenerator.cs
- ApplicationBuildProvider.cs
- EventRecord.cs
- DependencyObject.cs
- EntityContainerEmitter.cs
- SqlNotificationRequest.cs
- DataGridView.cs
- VirtualPathUtility.cs
- LinkArea.cs
- SystemIPAddressInformation.cs
- ListParaClient.cs
- DefaultTextStore.cs
- TrackingServices.cs
- OracleRowUpdatedEventArgs.cs
- BuildDependencySet.cs
- MessageDesigner.cs
- MessageBox.cs
- Simplifier.cs
- TemplateKeyConverter.cs
- DataControlFieldCollection.cs
- SID.cs
- SafeThemeHandle.cs
- ContextMenuAutomationPeer.cs
- TemplateInstanceAttribute.cs
- DoubleLinkList.cs
- CodeGenHelper.cs
- SoapIgnoreAttribute.cs
- DeferredElementTreeState.cs
- VerificationException.cs
- TypeLoadException.cs
- CreateUserErrorEventArgs.cs
- BufferModeSettings.cs
- OleDbDataAdapter.cs
- PagerSettings.cs
- MenuItem.cs
- DataServiceRequest.cs
- LocatorBase.cs
- TraceData.cs
- AccessDataSourceView.cs
- XPathMultyIterator.cs
- HttpWebRequest.cs
- AliasGenerator.cs
- Pts.cs
- X509CertificateInitiatorClientCredential.cs
- Geometry.cs
- DataRelationCollection.cs
- BaseDataList.cs
- XPathChildIterator.cs
- XPathCompileException.cs
- AuthorizationRuleCollection.cs
- EpmCustomContentWriterNodeData.cs
- PaginationProgressEventArgs.cs
- DragEvent.cs
- MachineKeySection.cs
- RemotingConfigParser.cs
- Object.cs
- TraceListeners.cs
- MobileResource.cs
- DependsOnAttribute.cs
- XmlCharType.cs
- ValidationResult.cs
- PreProcessInputEventArgs.cs
- Partitioner.cs
- LookupBindingPropertiesAttribute.cs
- FocusTracker.cs
- AuthorizationContext.cs
- Signature.cs
- GatewayIPAddressInformationCollection.cs
- Vector3DAnimationBase.cs
- PropertyChangedEventArgs.cs
- ColumnClickEvent.cs
- SQLDoubleStorage.cs
- GridViewDeleteEventArgs.cs
- ApplicationFileParser.cs
- DependencyPropertyHelper.cs
- SecurityState.cs
- MatrixAnimationUsingPath.cs
- SiteMapDataSourceView.cs
- SchemaNamespaceManager.cs
- UniqueIdentifierService.cs
- ZipIOBlockManager.cs
- TemplateModeChangedEventArgs.cs
- AspNetHostingPermission.cs
- KnownTypesProvider.cs
- RegexInterpreter.cs
- BindingValueChangedEventArgs.cs
- DispatcherExceptionEventArgs.cs
- BaseTemplateBuildProvider.cs
- DocumentEventArgs.cs
- DataGridViewColumnStateChangedEventArgs.cs
- MsmqPoisonMessageException.cs
- BinaryExpression.cs
- WhitespaceSignificantCollectionAttribute.cs