23class [[nodiscard]] ResponseFuture final {
27 ResponseFuture(ResponseFuture&&)
noexcept =
default;
28 ResponseFuture& operator=(ResponseFuture&&)
noexcept =
default;
33 [[nodiscard]]
bool IsReady()
const {
return impl_->IsReady(); }
39 return impl_->WaitUntil(deadline);
51 Response
Get() {
return impl_->Get(); }
54 void Cancel() {
return impl_->Cancel(); }
64 return impl_->GetAwaitableToken();
69 template <
typename Stub,
typename Request>
71 impl::CallParams&& params,
72 impl::PrepareUnaryCallProxy<Stub, Request, Response>&& prepare_unary_call,
73 const Request& request
75 : impl_{std::make_unique<impl::AsyncUnaryCallAdapter<
78 Response>>(std::move(params), std::move(prepare_unary_call), request)}
83 std::unique_ptr<impl::ResponseFutureImplBase<Response>> impl_;