use of org.osate.analysis.flows.model.LatencyReport in project osate2 by osate.
the class FlowLatencyAnalysisSwitch method invokeOnSOM.
/**
* Invoke the analysis and return Result collection
*
* @param etef The end to end flow instance
* @param som The mode to run the analysis in. If the ETEF is not active it will not be run.
* @param asynchronousSystem Whether the system is treated as asynchronous
* @param majorFrameDelay Whether partition output is performed at a major frame (as opposed to the partition end)
* @param worstCaseDeadline Use deadline based processing (as opposed to max compute execution time)
* @param bestCaseEmptyQueue Assume empty queue (instead of full)
* @param disableQueuingLatency <code>true</code> if queuing latency should always be reported as zero
*
* @since org.osate.analysis.flows 3.0
*/
private void invokeOnSOM(EndToEndFlowInstance etef, SystemOperationMode som, boolean asynchronousSystem, boolean majorFrameDelay, boolean worstCaseDeadline, boolean bestCaseEmptyQueue, boolean disableQueuingLatency) {
if (report == null) {
report = new LatencyReport();
}
report.setRootinstance(etef.getSystemInstance());
report.setLatencyAnalysisParameters(asynchronousSystem, majorFrameDelay, worstCaseDeadline, bestCaseEmptyQueue, disableQueuingLatency);
SystemInstance root = etef.getSystemInstance();
if (etef.isActive(som)) {
root.setCurrentSystemOperationMode(som);
LatencyReportEntry latres = analyzeLatency(etef, som, asynchronousSystem);
// Issue 1148
report.addEntry(latres);
root.clearCurrentSystemOperationMode();
}
}
Aggregations