示例#1
0
 public ExprAggMultiFunctionLinearAccessNodeFactoryAccess(ExprAggMultiFunctionLinearAccessNode parent, AggregationAccessor accessor, Type accessorResultType, EventType containedEventType, AggregationStateKey optionalStateKey, AggregationStateFactory optionalStateFactory, AggregationAgent optionalAgent)
 {
     _parent               = parent;
     _accessor             = accessor;
     _accessorResultType   = accessorResultType;
     _containedEventType   = containedEventType;
     _optionalStateKey     = optionalStateKey;
     _optionalStateFactory = optionalStateFactory;
     _optionalAgent        = optionalAgent;
 }
 public ExprAggMultiFunctionSortedMinMaxByNodeFactory(ExprAggMultiFunctionSortedMinMaxByNode parent,
     AggregationAccessor accessor, Type accessorResultType, EventType containedEventType,
     AggregationStateKey optionalStateKey, SortedAggregationStateFactoryFactory optionalStateFactory,
     AggregationAgent optionalAgent)
 {
     Parent = parent;
     Accessor = accessor;
     ResultType = accessorResultType;
     ContainedEventType = containedEventType;
     OptionalStateKey = optionalStateKey;
     OptionalStateFactory = optionalStateFactory;
     AggregationStateAgent = optionalAgent;
 }
示例#3
0
 public ReferenceCountLookupFunctionHandler(AggregationStateKey sharedStateKey, ExprEvaluator exprEvaluator)
 {
     this._sharedStateKey = sharedStateKey;
     this._exprEvaluator  = exprEvaluator;
 }
示例#4
0
 public ReferenceCountedMapFunctionHandler(AggregationStateKey sharedStateKey)
 {
     this.AggregationStateUniqueKey = sharedStateKey;
 }
 internal AggregationMFIdentifier(AggregationStateKey aggregationStateKey, ExprAggregateLocalGroupByDesc optionalLocalGroupBy, int slot)
 {
     AggregationStateKey  = aggregationStateKey;
     OptionalLocalGroupBy = optionalLocalGroupBy;
     Slot = slot;
 }
 internal static AggregationMFIdentifier FindExisting(IEnumerable <AggregationMFIdentifier> accessProviderSlots, AggregationStateKey providerKey, ExprAggregateLocalGroupByDesc optionalOver)
 {
     foreach (AggregationMFIdentifier ident in accessProviderSlots)
     {
         if (!Equals(providerKey, ident.AggregationStateKey))
         {
             continue;
         }
         if (optionalOver == null && ident.OptionalLocalGroupBy == null)
         {
             return(ident);
         }
         if (optionalOver != null &&
             ident.OptionalLocalGroupBy != null &&
             ExprNodeUtility.DeepEqualsIgnoreDupAndOrder(optionalOver.PartitionExpressions, ident.OptionalLocalGroupBy.PartitionExpressions))
         {
             return(ident);
         }
     }
     return(null);
 }