コード例 #1
0
        public ViewableActivationResult Activate(
            AgentInstanceContext agentInstanceContext,
            bool isSubselect,
            bool isRecoveringResilient)
        {
            PatternAgentInstanceContext patternAgentInstanceContext =
                agentInstanceContext.StatementContext.PatternContextFactory.CreatePatternAgentContext(
                    _patternContext, agentInstanceContext, _hasConsumingFilter);
            EvalRootNode rootNode = EvalNodeUtil.MakeRootNodeFromFactory(_rootFactoryNode, patternAgentInstanceContext);

            EventStream sourceEventStream = _isCanIterate ?
                                            (EventStream) new ZeroDepthStreamIterable(_eventType) :
                                            (EventStream) new ZeroDepthStreamNoIterate(_eventType);
            StatementContext     statementContext = _patternContext.StatementContext;
            PatternMatchCallback callback         = matchEvent =>
            {
                EventBean compositeEvent = statementContext.EventAdapterService.AdapterForTypedMap(
                    matchEvent, _eventType);
                sourceEventStream.Insert(compositeEvent);
            };

            var rootState = (EvalRootState)rootNode.Start(callback, _patternContext, isRecoveringResilient);

            return(new ViewableActivationResult(
                       sourceEventStream, rootState, null, rootState, rootState, _suppressSameEventMatches, _discardPartialsOnMatch, null));
        }