Beispiel #1
0
        public override void Update(
            EventBean[] newData,
            EventBean[] oldData)
        {
            agentInstanceContext.InstrumentationProvider.QInfraOnAction(
                OnTriggerType.ON_MERGE,
                newData,
                CollectionUtil.EVENTBEANARRAY_EMPTY);

            if (newData == null) {
                agentInstanceContext.InstrumentationProvider.AInfraOnAction();
                return;
            }

            var newColl = new OneEventCollection();
            var eventsPerStream =
                new EventBean[3]; // first:named window, second: trigger, third:before-update (optional)

            foreach (var trigger in newData) {
                eventsPerStream[1] = trigger;
                factory.OnMergeHelper.InsertUnmatched.Apply(null, eventsPerStream, newColl, null, agentInstanceContext);
                OnExprViewNamedWindowMerge.ApplyDelta(newColl, null, factory, rootView, agentInstanceContext, this);
                newColl.Clear();
            }

            agentInstanceContext.InstrumentationProvider.AInfraOnAction();
        }