public override OnExprViewResult DetermineOnExprView(AgentInstanceContext agentInstanceContext, IList <StopCallback> stopCallbacks, bool isRecoveringResilient)
        {
            var processors = new ResultSetProcessor[_splitDesc.ProcessorFactories.Length];

            for (var i = 0; i < processors.Length; i++)
            {
                var factory   = _splitDesc.ProcessorFactories[i];
                var processor = factory.ResultSetProcessorFactory.Instantiate(null, null, agentInstanceContext);
                processors[i] = processor;
            }

            var tableStateInstances = new TableStateInstance[processors.Length];

            for (var i = 0; i < _insertIntoTableNames.Length; i++)
            {
                var tableName = _insertIntoTableNames[i];
                if (tableName != null)
                {
                    tableStateInstances[i] = agentInstanceContext.StatementContext.TableService.GetState(tableName, agentInstanceContext.AgentInstanceId);
                }
            }
            var  desc = (OnTriggerSplitStreamDesc)StatementSpec.OnTriggerDesc;
            View view = new RouteResultView(
                desc.IsFirst, _activatorResultEventType, StatementContext.EpStatementHandle,
                Services.InternalEventRouter, tableStateInstances, _splitDesc.NamedWindowInsert, processors,
                _splitDesc.WhereClauses, agentInstanceContext);

            return(new OnExprViewResult(view, null));
        }
Beispiel #2
0
        public override OnExprViewResult DetermineOnExprView(
            AgentInstanceContext agentInstanceContext,
            IList <StopCallback> stopCallbacks,
            bool isRecoveringReslient)
        {
            var processors = new ResultSetProcessor[_items.Length];

            for (int i = 0; i < processors.Length; i++)
            {
                ResultSetProcessorFactoryDesc factory   = _items[i].FactoryDesc;
                ResultSetProcessor            processor = factory.ResultSetProcessorFactory.Instantiate(
                    null, null, agentInstanceContext);
                processors[i] = processor;
            }

            var tableStateInstances = new TableStateInstance[processors.Length];

            for (int i = 0; i < _items.Length; i++)
            {
                string tableName = _items[i].InsertIntoTableNames;
                if (tableName != null)
                {
                    tableStateInstances[i] = agentInstanceContext.StatementContext.TableService.GetState(
                        tableName, agentInstanceContext.AgentInstanceId);
                }
            }

            var whereClauseEvals = new ExprEvaluator[_items.Length];

            for (int i = 0; i < _items.Length; i++)
            {
                whereClauseEvals[i] = _items[i].WhereClause == null ? null : _items[i].WhereClause.ExprEvaluator;
            }

            var desc = (OnTriggerSplitStreamDesc)base.StatementSpec.OnTriggerDesc;
            var view = new RouteResultView(
                desc.IsFirst, _activatorResultEventType, base.StatementContext.EpStatementHandle, base.Services.InternalEventRouter,
                tableStateInstances, _items, processors, whereClauseEvals, agentInstanceContext);

            return(new OnExprViewResult(view, null));
        }