Go to the documentation of this file.
15 #ifndef GRPC_CORE_LIB_PROMISE_LOOP_H
16 #define GRPC_CORE_LIB_PROMISE_LOOP_H
21 #include <type_traits>
24 #include "absl/status/status.h"
25 #include "absl/status/statusor.h"
26 #include "absl/types/variant.h"
42 namespace promise_detail {
58 const auto& inner = *
value;
59 if (absl::holds_alternative<Continue>(inner))
return Continue{};
60 return absl::get<T>(inner);
70 const auto& inner = *
value;
71 if (absl::holds_alternative<Continue>(inner))
return Continue{};
72 return absl::get<absl::Status>(inner);
80 using PromiseType = decltype(std::declval<Factory>().Repeated());
101 if (
auto* p = absl::get_if<kPollReadyIdx>(&promise_result)) {
105 if (absl::holds_alternative<Continue>(lc)) {
111 return absl::get<Result>(lc);
129 template <
typename F>
136 #endif // GRPC_CORE_LIB_PROMISE_LOOP_H
ABSL_NAMESPACE_BEGIN class ABSL_MUST_USE_RESULT StatusOr
GPR_NO_UNIQUE_ADDRESS PromiseType promise_
#define T(upbtypeconst, upbtype, ctype, default_value)
Loop(Loop &&loop) noexcept
static LoopCtl< Result > ToLoopCtl(absl::StatusOr< LoopCtl< absl::Status >> value)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
TestInstance::Result Result
Loop & operator=(const Loop &loop)=delete
static LoopCtl< T > ToLoopCtl(LoopCtl< T > value)
promise_detail::Loop< F > Loop(F f)
ABSL_NAMESPACE_BEGIN class ABSL_MUST_USE_RESULT Status
typename PromiseType::Result PromiseResult
Poll< Result > operator()()
GPR_NO_UNIQUE_ADDRESS Factory factory_
static LoopCtl< Result > ToLoopCtl(absl::StatusOr< LoopCtl< T >> value)
decltype(std::declval< Factory >().Repeated()) PromiseType
typename LoopTraits< PromiseResult >::Result Result
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:30