Ejemplo n.º 1
0
        public void ProcessView(EventBean[] newData, EventBean[] oldData, bool isGenerateSynthetic)
        {
            object[] newDataMultiKey = _processor.GenerateGroupKeys(newData, true);
            object[] oldDataMultiKey = _processor.GenerateGroupKeys(oldData, false);

            if (newData != null)
            {
                // apply new data to aggregates
                int count = 0;
                foreach (EventBean aNewData in newData)
                {
                    object mk = newDataMultiKey[count];
                    _processor.EventsPerStreamOneStream[0] = aNewData;
                    _processor.AggregationService.ApplyEnter(_processor.EventsPerStreamOneStream, mk, _processor.AgentInstanceContext);
                    count++;
                }
            }
            if (oldData != null)
            {
                // apply old data to aggregates
                int count = 0;
                foreach (EventBean anOldData in oldData)
                {
                    _processor.EventsPerStreamOneStream[0] = anOldData;
                    _processor.AggregationService.ApplyLeave(_processor.EventsPerStreamOneStream, oldDataMultiKey[count], _processor.AgentInstanceContext);
                    count++;
                }
            }

            if (_processor.Prototype.IsSelectRStream)
            {
                _processor.GenerateOutputBatchedViewPerKey(oldData, oldDataMultiKey, false, isGenerateSynthetic, _outputLastUnordGroupOld, null);
            }
            _processor.GenerateOutputBatchedViewPerKey(newData, newDataMultiKey, false, isGenerateSynthetic, _outputLastUnordGroupNew, null);
        }
Ejemplo n.º 2
0
        public void ProcessView(
            EventBean[] newData,
            EventBean[] oldData,
            bool isGenerateSynthetic)
        {
            var newDataMultiKey = processor.GenerateGroupKeyArrayView(newData, true);
            var oldDataMultiKey = processor.GenerateGroupKeyArrayView(oldData, false);
            var eventsPerStream = new EventBean[1];

            if (newData != null) {
                // apply new data to aggregates
                var count = 0;
                foreach (var aNewData in newData) {
                    var mk = newDataMultiKey[count];
                    eventsPerStream[0] = aNewData;
                    processor.AggregationService.ApplyEnter(eventsPerStream, mk, processor.GetAgentInstanceContext());
                    count++;
                }
            }

            if (oldData != null) {
                // apply old data to aggregates
                var count = 0;
                foreach (var anOldData in oldData) {
                    eventsPerStream[0] = anOldData;
                    processor.AggregationService.ApplyLeave(
                        eventsPerStream,
                        oldDataMultiKey[count],
                        processor.GetAgentInstanceContext());
                    count++;
                }
            }

            if (processor.IsSelectRStream) {
                processor.GenerateOutputBatchedViewPerKey(
                    oldData,
                    oldDataMultiKey,
                    false,
                    isGenerateSynthetic,
                    outputLastUnordGroupOld,
                    null,
                    eventsPerStream);
            }

            processor.GenerateOutputBatchedViewPerKey(
                newData,
                newDataMultiKey,
                false,
                isGenerateSynthetic,
                outputLastUnordGroupNew,
                null,
                eventsPerStream);
        }