/*******************************************************************************
* Copyright (c) 2009, 2010 SAP AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API and implementation
******************************************************************************/
package org.eclipse.ocl.examples.impactanalyzer.benchmark.execution;
import org.eclipse.ocl.examples.impactanalyzer.benchmark.postprocessing.BenchmarkResultWriter;
import org.eclipse.ocl.examples.impactanalyzer.benchmark.preparation.tasks.BenchmarkTask;
/**
* A {@link BenchmarkExecutor} contains the logic for executing a single {@link BenchmarkTask}.
* After executing the task a {@link BenchmarkResult} is returned by this class.
*
* For create a new {@link BenchmarkExecutor} it is recommended to extend from {@link AbstractBenchmarkExecutor}
*
* @author Manuel Holzleitner (D049667)
*/
public interface BenchmarkExecutor {
/**
* Executes the setted @{link {@link BenchmarkTask} and benchmarks its execution.
*
* @throws An RuntimeException if the task was not set on the BenchmarkExecutor
* @return A BenchmarkResult for the given {@link BenchmarkTask}
*/
public void execute(BenchmarkTask task, BenchmarkResultWriter result);
}