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(); }
public override InfraOnExprBaseViewResult MakeNamedWindow( SubordWMatchExprLookupStrategy lookupStrategy, NamedWindowRootViewInstance namedWindowRootViewInstance, AgentInstanceContext agentInstanceContext) { View view; if (OnMergeHelper.InsertUnmatched != null) { view = new OnExprViewNamedWindowMergeInsertUnmatched( namedWindowRootViewInstance, agentInstanceContext, this); } else { view = new OnExprViewNamedWindowMerge( lookupStrategy, namedWindowRootViewInstance, agentInstanceContext, this); } return new InfraOnExprBaseViewResult(view, null); }