internal ViewableActivatorPattern( PatternContext patternContext, EvalRootFactoryNode rootFactoryNode, EventType eventType, bool hasConsumingFilter, bool suppressSameEventMatches, bool discardPartialsOnMatch, bool isCanIterate) { _patternContext = patternContext; _rootFactoryNode = rootFactoryNode; _eventType = eventType; _hasConsumingFilter = hasConsumingFilter; _suppressSameEventMatches = suppressSameEventMatches; _discardPartialsOnMatch = discardPartialsOnMatch; _isCanIterate = isCanIterate; }
public void Activate(EventBean optionalTriggeringEvent, MatchedEventMap priorMatches, long timeOffset, bool isRecoveringResilient) { if (PatternStopCallback != null) { PatternStopCallback.Stop(); } PatternStreamSpecCompiled patternStreamSpec = _endpointPatternSpec.PatternCompiled; StatementContext stmtContext = _agentInstanceContext.StatementContext; EvalRootFactoryNode rootFactoryNode = _servicesContext.PatternNodeFactory.MakeRootNode(patternStreamSpec.EvalFactoryNode); int streamNum = _isStartEndpoint ? _contextStatePathKey.SubPath : -1 * _contextStatePathKey.SubPath; bool allowResilient = _contextStatePathKey.Level == 1; PatternContext patternContext = stmtContext.PatternContextFactory.CreateContext(stmtContext, streamNum, rootFactoryNode, new MatchedEventMapMeta(patternStreamSpec.AllTags, !patternStreamSpec.ArrayEventTypes.IsEmpty()), allowResilient); PatternAgentInstanceContext patternAgentInstanceContext = stmtContext.PatternContextFactory.CreatePatternAgentContext(patternContext, _agentInstanceContext, false); EvalRootNode rootNode = EvalNodeUtil.MakeRootNodeFromFactory(rootFactoryNode, patternAgentInstanceContext); if (priorMatches == null) { priorMatches = new MatchedEventMapImpl(patternContext.MatchedEventMapMeta); } // capture any callbacks that may occur right after start ConditionPatternMatchCallback callback = new ConditionPatternMatchCallback(this); PatternStopCallback = rootNode.Start(callback.MatchFound, patternContext, priorMatches, isRecoveringResilient); callback.ForwardCalls = true; if (_agentInstanceContext.StatementContext.StatementExtensionServicesContext != null && _agentInstanceContext.StatementContext.StatementExtensionServicesContext.StmtResources != null) { _agentInstanceContext.StatementContext.StatementExtensionServicesContext.StmtResources .StartContextPattern(PatternStopCallback, _isStartEndpoint, _contextStatePathKey); } if (callback.IsInvoked) { MatchFound(Collections.GetEmptyMap <String, Object>()); } }
public ViewableActivator CreatePattern( PatternContext patternContext, EvalRootFactoryNode rootFactoryNode, EventType eventType, bool consumingFilters, bool suppressSameEventMatches, bool discardPartialsOnMatch, bool isCanIterateUnbound) { if (ProcCreatePattern == null) { throw new NotSupportedException(); } return(ProcCreatePattern.Invoke( patternContext, rootFactoryNode, eventType, consumingFilters, suppressSameEventMatches, discardPartialsOnMatch, isCanIterateUnbound)); }
public static EvalRootNode MakeRootNodeFromFactory( EvalRootFactoryNode rootFactoryNode, PatternAgentInstanceContext patternAgentInstanceContext) { return((EvalRootNode)rootFactoryNode.MakeEvalNode(patternAgentInstanceContext, null)); }
public ViewableActivator CreatePattern(PatternContext patternContext, EvalRootFactoryNode rootFactoryNode, EventType eventType, bool consumingFilters, bool suppressSameEventMatches, bool discardPartialsOnMatch, bool isCanIterateUnbound) { return(new ViewableActivatorPattern(patternContext, rootFactoryNode, eventType, consumingFilters, suppressSameEventMatches, discardPartialsOnMatch, isCanIterateUnbound)); }