28class ResponseFuture
final {
30 ResponseFuture(ResponseFuture&& other)
noexcept;
31 ResponseFuture& operator=(ResponseFuture&&)
noexcept;
32 ResponseFuture(
const ResponseFuture&) =
delete;
33 ResponseFuture& operator=(
const ResponseFuture&) =
delete;
46 std::future_status
Wait(utils::
impl::SourceLocation location = utils::
impl::SourceLocation::Current());
49 std::shared_ptr<Response>
Get(utils::
impl::SourceLocation location = utils::
impl::SourceLocation::Current());
51 void SetCancellationPolicy(CancellationPolicy cp);
55 engine::impl::ContextAccessor* TryGetContextAccessor()
noexcept;
57 ResponseFuture(
engine::Future<std::shared_ptr<Response>>&& future, std::shared_ptr<RequestState> request);
61 void CancelOrDetach();
63 engine::Future<std::shared_ptr<Response>> future_;
64 engine::Deadline deadline_;
65 std::shared_ptr<RequestState> request_state_;
66 bool was_deadline_propagated_{
false};
67 CancellationPolicy cancellation_policy_;