package eu.choreos.vv.client; import java.util.Map; import eu.choreos.vv.chart.Labeled; import eu.choreos.vv.data.ReportData; import eu.choreos.vv.experiments.Experiment; public interface Client<K, T> extends Labeled { ReportData execute(int numberOfCalls, long delay, Map<String, Object> params) throws Exception; /** * This method can be overridden to execute before each Iteration * * @throws Exception */ void setUp() throws Exception; /** * This method can be overriden to execute after each Iteration * * @throws Expeption */ void tearDown() throws Exception; /** * This method can be overridden to execute before each request * * @throws Exception */ K beforeRequest() throws Exception; /** * This method must be overridden in order to execute the proper request * * @throws Exception */ T request(K param) throws Exception; /** * This method can be overriden to execute after each request * * @throws Exception */ void afterRequest(T param) throws Exception; public Experiment getExperiment(); public void setExperiment(Experiment experiment); }