示例#1
0
        public override EventBean[] ProcessUpdate(EPPreparedExecuteIUDSingleStreamExecUpdate update)
        {
            ExprTableEvalLockUtil.ObtainLockUnless(_instance.TableLevelRWLock.WriteLock, update.Services.TableService.TableExprEvaluatorContext);
            var events = SnapshotAndApplyFilter(update.Filter, update.Annotations, update.OptionalWhereClause, _instance.AgentInstanceContext);

            if (events != null && events.IsEmpty())
            {
                return(CollectionUtil.EVENTBEANARRAY_EMPTY);
            }

            var eventsPerStream = new EventBean[3];

            if (events == null)
            {
                update.TableUpdateStrategy.UpdateTable(_instance.EventCollection, _instance, eventsPerStream, _instance.AgentInstanceContext);
            }
            else
            {
                update.TableUpdateStrategy.UpdateTable(events, _instance, eventsPerStream, _instance.AgentInstanceContext);
            }
            return(CollectionUtil.EVENTBEANARRAY_EMPTY);
        }
示例#2
0
 public abstract EventBean[] ProcessUpdate(EPPreparedExecuteIUDSingleStreamExecUpdate update);
 public override EventBean[] ProcessUpdate(EPPreparedExecuteIUDSingleStreamExecUpdate update)
 {
     EPPreparedExecuteTableHelper.AssignTableAccessStrategies(update.Services, update.OptionalTableNodes, _processorInstance.TailViewInstance.AgentInstanceContext);
     return(_processorInstance.TailViewInstance.SnapshotUpdate(update.Filter, update.OptionalWhereClause, update.UpdateHelper, update.Annotations));
 }