Go to the documentation of this file.
15 #ifndef GRPC_CORE_LIB_PROMISE_ARENA_PROMISE_H
16 #define GRPC_CORE_LIB_PROMISE_ARENA_PROMISE_H
22 #include <type_traits>
25 #include "absl/meta/type_traits.h"
33 namespace arena_promise_detail {
73 template <
typename T,
typename Callable>
96 template <
typename T,
typename Callable>
107 static_assert(
sizeof(
SharedImpl) ==
sizeof(
void*),
108 "SharedImpl should be pointer sized");
109 static SharedImpl impl(std::forward<Callable>(callable));
115 : Callable(
std::
forward<Callable>(callable)) {}
121 template <
typename T,
typename Callable,
typename Ignored =
void>
124 template <
typename T,
typename Callable>
128 return GetContext<Arena>()->template New<CallableImpl<T, Callable>>(
129 std::forward<Callable>(callable));
133 template <
typename T,
typename Callable>
142 template <
typename T,
typename Callable>
145 std::forward<Callable>(callable));
151 template <
typename T>
158 template <
typename Callable,
static ImplInterface< T > * Make(Callable &&callable)
virtual Poll< T > PollOnce()=0
arena_promise_detail::ImplInterface< T > * impl_
static ImplInterface< T > * Get()
RefCountedPtr< grpc_tls_certificate_provider > instance
ArenaPromise & operator=(ArenaPromise &&other) noexcept
typename std::enable_if< B, T >::type enable_if_t
#define T(upbtypeconst, upbtype, ctype, default_value)
Poll< T > PollOnce() override
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
ImplInterface< T > * MakeImplForCallable(Callable &&callable)
Poll< T > PollOnce() override
CallableImpl(Callable &&callable)
ArenaPromise & operator=(const ArenaPromise &)=delete
ArenaPromise(Callable &&callable)
static ImplInterface< T > * Make(Callable &&callable)
constexpr T && forward(absl::remove_reference_t< T > &t) noexcept
SharedImpl(Callable &&callable)
ArenaPromise(ArenaPromise &&other) noexcept
Poll< T > PollOnce() override
static SharedImpl * Get(Callable &&callable)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:42