package test.r2.perf.client; import com.linkedin.common.callback.FutureCallback; import com.linkedin.common.util.None; import com.linkedin.r2.message.stream.StreamRequest; import com.linkedin.r2.transport.common.Client; import test.r2.perf.Generator; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicReference; /** * @auther Zhenkai Zhu */ public class StreamClientRunnableFactory implements ClientRunnableFactory { private final Client _client; private final Generator<StreamRequest> _reqGen; public StreamClientRunnableFactory(Client client, Generator<StreamRequest> reqGen) { _client = client; _reqGen = reqGen; } @Override public Runnable create(AtomicReference<Stats> stats, CountDownLatch startLatch) { return new StreamClientRunnable(_client, stats, startLatch, _reqGen); } @Override public void shutdown() { final FutureCallback<None> callback = new FutureCallback<None>(); _client.shutdown(callback); try { callback.get(); } catch (Exception e) { // Print out error and continue e.printStackTrace(); } } }