/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.management; import de.rcenvironment.core.utils.common.textstream.TextOutputReceiver; /** * A service that allows the execution of communication layer benchmarks. * * @author Robert Mischke */ public interface BenchmarkService { /** * Parses a textual benchmark definition into a {@link BenchmarkSetup} object. If the input is invalid, a * {@link IllegalArgumentException} run-time exception is thrown. * * TODO add format documentation -- misc_ro, 2013-01 * * @param definition the definition String * @return the ready-to-use benchmark setup */ BenchmarkSetup parseBenchmarkDescription(String definition); /** * Performs a benchmark run. * * @param setup the benchmark definition/setup * @param outputReceiver the receiver of text output and start/finish/error events. */ void executeBenchmark(BenchmarkSetup setup, TextOutputReceiver outputReceiver); /** * Starts an asynchronous benchmark run. The start and finish of the benchmark run can be detected via the {@link TextOutputReceiver} * callback methods. * * @param setup the benchmark definition/setup * @param outputReceiver the receiver of text output and start/finish/error events. */ void asyncExecBenchmark(BenchmarkSetup setup, TextOutputReceiver outputReceiver); }