public override void Apply( EventBean matchingEvent, EventBean[] eventsPerStream, TableStateInstance tableStateInstance, TableOnMergeViewChangeHandler changeHandlerAdded, TableOnMergeViewChangeHandler changeHandlerRemoved, ExprEvaluatorContext exprEvaluatorContext) { var theEvent = _insertHelper.Process(eventsPerStream, true, true, exprEvaluatorContext); if (_internalEventRouter == null) { var aggs = _tableStateRowFactory.MakeAggs(exprEvaluatorContext.AgentInstanceId, null, null, tableStateInstance.AggregationServicePassThru); ((object[])theEvent.Underlying)[0] = aggs; tableStateInstance.AddEvent(theEvent); if (changeHandlerAdded != null) { changeHandlerAdded.Add(theEvent, eventsPerStream, true, exprEvaluatorContext); } return; } if (_audit) { AuditPath.AuditInsertInto(_internalEventRouteDest.EngineURI, _statementHandle.StatementName, theEvent); } _internalEventRouter.Route(theEvent, _statementHandle, _internalEventRouteDest, exprEvaluatorContext, false); }
public override EventBean[] ProcessInsert(EPPreparedExecuteIUDSingleStreamExecInsert insert) { ExprTableEvalLockUtil.ObtainLockUnless(_instance.TableLevelRWLock.WriteLock, insert.Services.TableService.TableExprEvaluatorContext); var theEvent = insert.InsertHelper.Process(new EventBean[0], true, true, insert.ExprEvaluatorContext); var aggs = _instance.TableMetadata.RowFactory.MakeAggs(insert.ExprEvaluatorContext.AgentInstanceId, null, null); ((object[])theEvent.Underlying)[0] = aggs; _instance.AddEvent(theEvent); return(CollectionUtil.EVENTBEANARRAY_EMPTY); }