20class [[nodiscard]] ResponseFuture final {
24 ResponseFuture(ResponseFuture&&)
noexcept =
default;
25 ResponseFuture& operator=(ResponseFuture&&)
noexcept =
default;
30 [[nodiscard]]
bool IsReady()
const noexcept {
return call_.GetFinishFuture().IsReady(); }
36 return call_.GetFinishFuture().WaitUntil(deadline);
48 Response
Get() {
return call_.GetFinishFuture().Get(); }
58 template <
typename Stub,
typename Request>
60 impl::CallParams&& params,
61 impl::PrepareUnaryCallProxy<Stub, Request, Response> prepare_unary_call,
62 const Request& request
64 : call_(std::move(params), prepare_unary_call, request) {}
67 engine::impl::ContextAccessor* TryGetContextAccessor()
noexcept {
68 return call_.GetFinishFuture().TryGetContextAccessor();
73 impl::UnaryCall<Response> call_;