public EventBean[] SnapshotUpdate( QueryGraph filterQueryGraph, ExprEvaluator optionalWhereClause, EventBeanUpdateHelperWCopy updateHelper, Attribute[] annotations) { using (AgentInstanceContext.EpStatementAgentInstanceHandle.StatementAgentInstanceLock.AcquireReadLock()) { try { var events = SnapshotNoLockWithFilter( filterQueryGraph, annotations, optionalWhereClause, AgentInstanceContext); if (events.IsEmpty()) { return CollectionUtil.EVENTBEANARRAY_EMPTY; } var eventsPerStream = new EventBean[3]; var updated = new EventBean[events.Count]; var count = 0; foreach (var @event in events) { updated[count++] = updateHelper.Invoke(@event, eventsPerStream, AgentInstanceContext); } var deleted = events.ToArray(); _rootViewInstance.Update(updated, deleted); return updated; } finally { ReleaseTableLocks(AgentInstanceContext); } } }
public InfraOnMergeActionUpd( ExprEvaluator optionalFilter, EventBeanUpdateHelperWCopy namedWindowUpdate) : base( optionalFilter) { this.namedWindowUpdate = namedWindowUpdate; tableUpdate = null; }
public InfraOnMergeActionUpd( ExprEvaluator optionalFilter, EventBeanUpdateHelperNoCopy tableUpdate, Table table) : base(optionalFilter) { this.tableUpdate = tableUpdate; namedWindowUpdate = null; this.table = table; InitTableUpdateStrategy(table); }
public InfraOnUpdateViewFactory( EventType infraEventType, EventBeanUpdateHelperWCopy updateHelperNamedWindow, EventBeanUpdateHelperNoCopy updateHelperTable, Table table, StatementContext statementContext) : base( infraEventType) { UpdateHelperNamedWindow = updateHelperNamedWindow; UpdateHelperTable = updateHelperTable; this.table = table; if (table != null) { InitTableUpdateStrategy(table); table.AddUpdateStrategyCallback(this); statementContext.AddFinalizeCallback( new ProxyStatementFinalizeCallback { ProcStatementDestroyed = context => { this.table.RemoveUpdateStrategyCallback(this); } }); } }