public override AggregationService MakeService(AgentInstanceContext agentInstanceContext, MethodResolutionService methodResolutionService)
        {
            AggSvcGroupByReclaimAgedEvalFunc max  = EvaluationFunctionMaxAge.Make(agentInstanceContext);
            AggSvcGroupByReclaimAgedEvalFunc freq = EvaluationFunctionFrequency.Make(agentInstanceContext);

            return(new AggSvcGroupByReclaimAgedImpl(Evaluators, Aggregators, GroupKeyBinding, Accessors, AccessAggregations, IsJoin, max, freq, methodResolutionService));
        }
示例#2
0
        public override AggregationService MakeService(AgentInstanceContext agentInstanceContext, EngineImportService engineImportService, bool isSubquery, int?subqueryNumber)
        {
            AggSvcGroupByReclaimAgedEvalFunc max  = EvaluationFunctionMaxAge.Make(agentInstanceContext);
            AggSvcGroupByReclaimAgedEvalFunc freq = EvaluationFunctionFrequency.Make(agentInstanceContext);

            return(new AggSvcGroupByReclaimAgedImpl(Evaluators, Aggregators, Accessors, AccessAggregations, IsJoin, max, freq));
        }
 public AggSvcGroupByReclaimAgedImpl(ExprEvaluator[] evaluators, AggregationMethodFactory[] aggregators, AggregationAccessorSlotPair[] accessors, AggregationStateFactory[] accessAggregations, bool @join, AggSvcGroupByReclaimAgedEvalFunc evaluationFunctionMaxAge, AggSvcGroupByReclaimAgedEvalFunc evaluationFunctionFrequency)
     : base(evaluators, aggregators)
 {
     _accessors                   = accessors;
     _accessAggregations          = accessAggregations;
     _isJoin                      = join;
     _evaluationFunctionMaxAge    = evaluationFunctionMaxAge;
     _evaluationFunctionFrequency = evaluationFunctionFrequency;
     _aggregatorsPerGroup         = new Dictionary <Object, AggregationMethodRowAged>();
     _removedKeys                 = new List <Object>();
 }
示例#4
0
        /// <summary>
        ///     NOTE: Code-generation-invoked method, method name and parameter order matters
        /// </summary>
        /// <param name="current">current</param>
        /// <param name="func">func</param>
        /// <param name="timeAbacus">abacus</param>
        /// <returns>delta</returns>
        public static long ComputeTimeReclaimAgeFreq(
            long current,
            AggSvcGroupByReclaimAgedEvalFunc func,
            TimeAbacus timeAbacus)
        {
            var maxAge = func.LongValue;
            if (maxAge == null || maxAge <= 0) {
                return current;
            }

            return timeAbacus.DeltaForSecondsDouble(maxAge.Value);
        }