Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }