/**********************************************************/ /// <summary> /// When a METADATA report is received, all reports must be implicitly cancelled /// Send a message to the UI to set all reports to complete /// </summary> public void handleMetadataReportReceived(ISendReport sendReport) { lock (this) { List <string> completedReports = new List <string>(); foreach (ReportRequestWrapper reportRequestWrapper in m_reportRequests.Values) { if (reportRequestWrapper.ReportRequest.reportSpecifier.reportSpecifierID != "METADATA") { sendReport.processCreateReportComplete(reportRequestWrapper.ReportRequestID); completedReports.Add(reportRequestWrapper.ReportRequestID); } } foreach (string reportRequestID in completedReports) { m_reportRequests.Remove(reportRequestID); } } }
/**********************************************************/ public void generateUpdateReport(Dictionary <string, Interval> intervals, Dictionary <string, ReportWrapper> reports, ISendReport sendReport) { List <string> completedReports = new List <string>(); lock (this) { foreach (ReportRequestWrapper reportRequestWrapper in m_reportRequests.Values) { reportRequestWrapper.generateUpdateReport(intervals, reports, sendReport); if (reportRequestWrapper.ReportComplete) { completedReports.Add(reportRequestWrapper.ReportRequestID); } } foreach (string reportRequestID in completedReports) { m_reportRequests.Remove(reportRequestID); sendReport.processCreateReportComplete(reportRequestID); } } }