Ejemplo n.º 1
0
 public override void Apply(
     EventBean matchingEvent,
     EventBean[] eventsPerStream,
     TableInstance tableStateInstance,
     OnExprViewTableChangeHandler changeHandlerAdded,
     OnExprViewTableChangeHandler changeHandlerRemoved,
     AgentInstanceContext agentInstanceContext)
 {
     tableStateInstance.DeleteEvent(matchingEvent);
     changeHandlerRemoved?.Add(matchingEvent, eventsPerStream, false, agentInstanceContext);
 }
Ejemplo n.º 2
0
        public override EventBean[] ProcessDelete(FAFQueryMethodIUDDelete delete)
        {
            TableEvalLockUtil.ObtainLockUnless(
                instance.TableLevelRWLock.WriteLock,
                instance.AgentInstanceContext.TableExprEvaluatorContext);

            if (delete.OptionalWhereClause == null) {
                instance.ClearInstance();
                return CollectionUtil.EVENTBEANARRAY_EMPTY;
            }

            var found = SnapshotAndApplyFilter(
                delete.QueryGraph,
                delete.Annotations,
                delete.OptionalWhereClause,
                instance.AgentInstanceContext);
            foreach (var @event in found) {
                instance.DeleteEvent(@event);
            }

            return CollectionUtil.EVENTBEANARRAY_EMPTY;
        }