public void Activate(EventBean optionalTriggeringEvent, MatchedEventMap priorMatches, long timeOffset, bool isRecoveringResilient) { FilterHandleCallback filterCallback = new ProxyFilterHandleCallback { ProcStatementId = () => _agentInstanceContext.StatementContext.StatementId, ProcIsSubselect = () => false, ProcMatchFound = (theEvent, allStmtMatches) => FilterMatchFound(theEvent) }; // determine addendum, if any FilterValueSetParam[][] addendum = null; if (_filterAddendum != null) { addendum = _filterAddendum.GetFilterAddendum(_endpointFilterSpec.FilterSpecCompiled); } _filterHandle = new EPStatementHandleCallback(_agentInstanceContext.EpStatementAgentInstanceHandle, filterCallback); FilterValueSet filterValueSet = _endpointFilterSpec.FilterSpecCompiled.GetValueSet(null, _agentInstanceContext, addendum); _filterServiceEntry = _servicesContext.FilterService.Add(filterValueSet, _filterHandle); if (optionalTriggeringEvent != null) { bool match = StatementAgentInstanceUtil.EvaluateFilterForStatement(_servicesContext, optionalTriggeringEvent, _agentInstanceContext, _filterHandle); if (match) { FilterMatchFound(optionalTriggeringEvent); } } }
public ContextControllerHashedFilterCallback( EPServicesContext servicesContext, AgentInstanceContext agentInstanceContextCreateContext, ContextDetailHashItem hashItem, ContextControllerHashedInstanceCallback callback, ContextInternalFilterAddendum filterAddendum) { _agentInstanceContextCreateContext = agentInstanceContextCreateContext; _callback = callback; _getter = hashItem.Lookupable.Getter; _filterHandle = new EPStatementHandleCallback(agentInstanceContextCreateContext.EpStatementAgentInstanceHandle, this); FilterValueSetParam[][] addendum = filterAddendum != null?filterAddendum.GetFilterAddendum(hashItem.FilterSpecCompiled) : null; FilterValueSet filterValueSet = hashItem.FilterSpecCompiled.GetValueSet(null, null, addendum); _filterServiceEntry = servicesContext.FilterService.Add(filterValueSet, _filterHandle); long filtersVersion = servicesContext.FilterService.FiltersVersion; agentInstanceContextCreateContext.EpStatementAgentInstanceHandle.StatementFilterVersion.StmtFilterVersion = filtersVersion; }
public ContextControllerPartitionedFilterCallback(EPServicesContext servicesContext, AgentInstanceContext agentInstanceContextCreateContext, ContextDetailPartitionItem partitionItem, ContextControllerPartitionedInstanceCreateCallback callback, ContextInternalFilterAddendum filterAddendum) { _agentInstanceContextCreateContext = agentInstanceContextCreateContext; _callback = callback; _filterHandle = new EPStatementHandleCallback(agentInstanceContextCreateContext.EpStatementAgentInstanceHandle, this); _getters = new EventPropertyGetter[partitionItem.PropertyNames.Count]; for (int i = 0; i < partitionItem.PropertyNames.Count; i++) { var propertyName = partitionItem.PropertyNames[i]; var getter = partitionItem.FilterSpecCompiled.FilterForEventType.GetGetter(propertyName); _getters[i] = getter; } var addendum = filterAddendum != null?filterAddendum.GetFilterAddendum(partitionItem.FilterSpecCompiled) : null; var filterValueSet = partitionItem.FilterSpecCompiled.GetValueSet(null, null, addendum); _filterServiceEntry = servicesContext.FilterService.Add(filterValueSet, _filterHandle); var filtersVersion = servicesContext.FilterService.FiltersVersion; agentInstanceContextCreateContext.EpStatementAgentInstanceHandle.StatementFilterVersion.StmtFilterVersion = filtersVersion; }