/** * A ScheduledTrial is a simple pair of a {@link TrialRunLoop} and a * {@link TrialSchedulingPolicy}. */ @TrialScoped final class ScheduledTrial { private final TrialRunLoop runLoop; private final Experiment experiment; private final TrialSchedulingPolicy policy; @Inject ScheduledTrial(Experiment experiment, TrialRunLoop runLoop, TrialSchedulingPolicy policy) { this.runLoop = runLoop; this.experiment = experiment; this.policy = policy; } TrialSchedulingPolicy policy() { return policy; } Experiment experiment() { return experiment; } Callable<TrialResult> trialTask() { return runLoop; } }
@TrialScoped class TrialRunLoop implements Callable<Trial> { private static final Logger logger = Logger.getLogger(TrialRunLoop.class.getName());
@TrialScoped class TrialRunLoop implements Callable<TrialResult> { private static final Logger logger = Logger.getLogger(TrialRunLoop.class.getName());
@TrialScoped final class StreamService extends AbstractService {
@TrialScoped final class StreamService extends AbstractService {
@Provides @TrialScoped ListenableFuture<OpenedSocket> provideTrialSocket( @TrialId UUID trialId, ServerSocketService serverSocketService) { return serverSocketService.getConnection(trialId); }
@Provides @TrialScoped ListenableFuture<OpenedSocket> provideTrialSocket( @TrialId UUID trialId, ServerSocketService serverSocketService) { return serverSocketService.getConnection(trialId); }
@TrialScoped final class WorkerProcess { private static final Logger logger = Logger.getLogger(WorkerProcess.class.getName());
@TrialScoped final class TrialOutputLogger implements Closeable { @GuardedBy("this") private File file;
@TrialScoped final class WorkerProcess { private static final Logger logger = Logger.getLogger(WorkerProcess.class.getName());
@Provides @TrialScoped TrialSchedulingPolicy provideTrialSchedulingPolicy(Experiment experiment) { return experiment.instrumentation().instrument().schedulingPolicy(); }
@TrialScoped @Provides BenchmarkSpec provideBenchmarkSpec(Experiment experiment) { return new BenchmarkSpec.Builder() .className(experiment.instrumentation().benchmarkMethod().getDeclaringClass().getName()) .methodName(experiment.instrumentation().benchmarkMethod().getName()) .addAllParameters(experiment.userParameters()) .build(); }
@TrialScoped @Provides BenchmarkSpec provideBenchmarkSpec(Experiment experiment) { return new BenchmarkSpec.Builder() .className(experiment.instrumentation().benchmarkMethod().getDeclaringClass().getName()) .methodName(experiment.instrumentation().benchmarkMethod().getName()) .addAllParameters(experiment.userParameters()) .build(); }