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); }