File: System\Linq\Parallel\Enumerables\QueryAggregationOptions.cs
Project: ndp\fx\src\Core\System.Core.csproj (System.Core)
// ==++==
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// ==--==
// =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
//
// QueryAggregationOptions.cs
//
// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 
namespace System.Linq.Parallel
{
    /// <summary>
    /// An enum to specify whether an aggregate operator is associative, commutative,
    /// neither, or both. This influences query analysis and execution: associative
    /// aggregations can run in parallel, whereas non-associative cannot; non-commutative
    /// aggregations must be run over data in input-order. 
    /// </summary>
    [Flags]
    internal enum QueryAggregationOptions
    {
        None = 0,
        Associative = 1,
        Commutative = 2,
        AssociativeCommutative = (Associative | Commutative) // For convenience.
    }
}