public override bool CheckForPrematureServerAggregate(string aggregateName)
        {
            IRIFReportDataScope iRIFReportDataScope = this.m_lastRIFObject;

            while (iRIFReportDataScope != null && !iRIFReportDataScope.IsScope)
            {
                iRIFReportDataScope = iRIFReportDataScope.ParentReportScope;
            }
            if (iRIFReportDataScope != null && iRIFReportDataScope.IsBoundToStreamingScopeInstance)
            {
                if (OnDemandStateManagerStreaming.NeedsDataForServerAggregate(iRIFReportDataScope))
                {
                    this.AdvanceDataPipeline(iRIFReportDataScope, PipelineAdvanceMode.ToFulfillServerAggregate);
                    this.SetupEnvironment(iRIFReportDataScope, iRIFReportDataScope.CurrentStreamingScopeInstance.Value(), iRIFReportDataScope.CurrentStreamingScopeInstance);
                    return(true);
                }
                return(false);
            }
            return(false);
        }
            public bool ShouldStopPipelineAdvance(bool rowAccepted)
            {
                switch (this.m_pipelineMode)
                {
                case PipelineAdvanceMode.ByOneRow:
                    this.m_metStoppingCondition = rowAccepted;
                    break;

                case PipelineAdvanceMode.ToStoppingScopeInstance:
                    this.m_metStoppingCondition = (rowAccepted && this.m_stoppingScopeInstanceCreated);
                    break;

                case PipelineAdvanceMode.ToFulfillServerAggregate:
                    this.m_metStoppingCondition = (this.m_stoppingScopeInstanceCreated || !OnDemandStateManagerStreaming.NeedsDataForServerAggregate(this.m_targetScopeForDataProcessing));
                    break;

                default:
                    Global.Tracer.Assert(false, "Unknown pipeline mode: {0}", this.m_pipelineMode);
                    throw new InvalidOperationException();
                }
                return(this.m_metStoppingCondition);
            }