@Override public Future<Response<T>> adapt(Call<T> call) { Promise<Response<T>> promise = Promise.apply(); call.enqueue(new Callback<T>() { @Override public void onResponse(Call<T> call, Response<T> response) { promise.success(response); } @Override public void onFailure(Call<T> call, Throwable t) { promise.failure(t); } }); return promise.future(); } }
@Override public Future<T> adapt(Call<T> call) { Promise<T> promise = Promise.apply(); call.enqueue(new Callback<T>() { @Override public void onResponse(Call<T> call, Response<T> response) { if (response.isSuccessful()) { promise.success(response.body()); } else { promise.failure(new HttpException(response)); } } @Override public void onFailure(Call<T> call, Throwable t) { promise.failure(t); } }); return promise.future(); } }
@Benchmark public Promise<String> newPromise() { return Promise.<String>apply(); }
@Benchmark public String setValue() throws Exception { Promise<String> p = Promise.<String>apply(); p.success(string); return Await.result(p.future(), inf); }
@Benchmark public Void ensurePromiseN() throws Exception { Promise<Void> p = Promise.<Void>apply(); Future<Void> f = p.future(); for (int i = 0; i < N.n; i++) f = f.transform(ensureF, ec); p.success(null); return Await.result(f, inf); }
@Benchmark public String setValueN() throws Exception { Promise<String> p = Promise.<String>apply(); Future<String> f = p.future(); for (int i = 0; i < N.n; i++) f = f.map(mapF, ec); p.success(string); return Await.result(f, inf); }
@Benchmark public String flatMapPromise() throws Exception { Promise<String> p = Promise.<String>apply(); Future<String> f = p.future().flatMap(flatMapF, ec); p.success(string); return Await.result(f, inf); }
@Benchmark public String mapPromise() throws Exception { Promise<String> p = Promise.<String>apply(); Future<String> f = p.future().map(mapF, ec); p.success(string); return Await.result(f, inf); }
@Benchmark public String mapPromiseN() throws Exception { Promise<String> p = Promise.<String>apply(); Future<String> f = p.future(); for (int i = 0; i < N.n; i++) f = f.map(mapF, ec); p.success(string); return Await.result(f, inf); }
@Benchmark public String flatMapPromiseN() throws Exception { Promise<String> p = Promise.<String>apply(); Future<String> f = p.future(); for (int i = 0; i < N.n; i++) f = f.flatMap(flatMapF, ec); p.success(string); return Await.result(f, inf); }
@Benchmark public Void ensurePromise() throws Exception { Promise<Void> p = Promise.<Void>apply(); Future<Void> f = p.future().transform(ensureF, ec); p.success(null); return Await.result(f, inf); }