public ExprPreviousEvalStrategyCount(int streamNumber, RandomAccessByIndexGetter randomAccessGetter, RelativeAccessByEventNIndexMap relativeAccessGetter) { _streamNumber = streamNumber; _randomAccessGetter = randomAccessGetter; _relativeAccessGetter = relativeAccessGetter; }
public ExprPreviousEvalStrategyWindow(int streamNumber, ExprEvaluator evalNode, Type componentType, RandomAccessByIndexGetter randomAccessGetter, RelativeAccessByEventNIndexMap relativeAccessGetter) { _streamNumber = streamNumber; _evalNode = evalNode; _componentType = componentType; _randomAccessGetter = randomAccessGetter; _relativeAccessGetter = relativeAccessGetter; }
public static IStreamSortRankRandomAccess GetOptPreviousExprSortedRankedAccess(AgentInstanceViewFactoryChainContext agentInstanceViewFactoryContext) { IStreamSortRankRandomAccess rankedRandomAccess = null; if (agentInstanceViewFactoryContext.PreviousNodeGetter != null) { RandomAccessByIndexGetter getter = (RandomAccessByIndexGetter)agentInstanceViewFactoryContext.PreviousNodeGetter; rankedRandomAccess = new IStreamSortRankRandomAccess(getter); getter.Updated(rankedRandomAccess); } return(rankedRandomAccess); }
private static void HandlePrevious(IList <ExprPreviousNode> previousRequests, Object previousNodeGetter, IDictionary <ExprPreviousNode, ExprPreviousEvalStrategy> strategies) { if (previousRequests.IsEmpty()) { return; } RandomAccessByIndexGetter randomAccessGetter = null; RelativeAccessByEventNIndexMap relativeAccessGetter = null; if (previousNodeGetter is RandomAccessByIndexGetter) { randomAccessGetter = (RandomAccessByIndexGetter)previousNodeGetter; } else if (previousNodeGetter is RelativeAccessByEventNIndexMap) { relativeAccessGetter = (RelativeAccessByEventNIndexMap)previousNodeGetter; } else { throw new EPException("Unexpected 'previous' handler: " + previousNodeGetter); } foreach (ExprPreviousNode previousNode in previousRequests) { int streamNumber = previousNode.StreamNumber; ExprPreviousNodePreviousType previousType = previousNode.PreviousType; ExprPreviousEvalStrategy evaluator; if (previousType == ExprPreviousNodePreviousType.PREVWINDOW) { evaluator = new ExprPreviousEvalStrategyWindow(streamNumber, previousNode.ChildNodes[1].ExprEvaluator, previousNode.ReturnType.GetElementType(), randomAccessGetter, relativeAccessGetter); } else if (previousType == ExprPreviousNodePreviousType.PREVCOUNT) { evaluator = new ExprPreviousEvalStrategyCount(streamNumber, randomAccessGetter, relativeAccessGetter); } else { evaluator = new ExprPreviousEvalStrategyPrev(streamNumber, previousNode.ChildNodes[0].ExprEvaluator, previousNode.ChildNodes[1].ExprEvaluator, randomAccessGetter, relativeAccessGetter, previousNode.IsConstantIndex, previousNode.ConstantIndexNumber, previousType == ExprPreviousNodePreviousType.PREVTAIL); } strategies.Put(previousNode, evaluator); } }
public ExprPreviousEvalStrategyPrev(int streamNumber, ExprEvaluator indexNode, ExprEvaluator evalNode, RandomAccessByIndexGetter randomAccessGetter, RelativeAccessByEventNIndexMap relativeAccessGetter, bool constantIndex, int?constantIndexNumber, bool tail) { _streamNumber = streamNumber; _indexNode = indexNode; _evalNode = evalNode; _randomAccessGetter = randomAccessGetter; _relativeAccessGetter = relativeAccessGetter; _isConstantIndex = constantIndex; _constantIndexNumber = constantIndexNumber; _isTail = tail; }
public ExprPreviousEvalStrategyPrev( int streamNumber, ExprEvaluator indexNode, ExprEvaluator evalNode, RandomAccessByIndexGetter randomAccessGetter, RelativeAccessByEventNIndexGetter relativeAccessGetter, bool constantIndex, int? constantIndexNumber, bool tail) { this.streamNumber = streamNumber; this.indexNode = indexNode; this.evalNode = evalNode; this.randomAccessGetter = randomAccessGetter; this.relativeAccessGetter = relativeAccessGetter; isConstantIndex = constantIndex; this.constantIndexNumber = constantIndexNumber; isTail = tail; }