Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
grpc_core::promise_detail::BasicJoin< Traits, Fs > Class Template Reference

#include <basic_join.h>

Public Types

using Result = decltype(Traits::Wrap(std::declval< Tuple >()))
 

Public Member Functions

 BasicJoin (BasicJoin &&other) noexcept
 
 BasicJoin (const BasicJoin &other)
 
 BasicJoin (Fs &&... fs)
 
Poll< Resultoperator() ()
 
BasicJoinoperator= (const BasicJoin &)=delete
 
 ~BasicJoin ()
 

Private Types

using Tuple = std::tuple< typename Fused< Traits, Fs >::Result... >
 

Private Member Functions

template<size_t... I>
Tuple Finish (absl::index_sequence< I... >)
 
template<size_t I>
Joint< Traits, sizeof...(Fs) - I, Fs... > * GetJoint ()
 

Private Attributes

union {
   GPR_NO_UNIQUE_ADDRESS Joint< Traits, sizeof...(Fs), Fs... >   joints_
 
}; 
 
GPR_NO_UNIQUE_ADDRESS BitSet< Nstate_
 

Static Private Attributes

static constexpr size_t N = sizeof...(Fs)
 

Detailed Description

template<typename Traits, typename... Fs>
class grpc_core::promise_detail::BasicJoin< Traits, Fs >

Definition at line 136 of file basic_join.h.

Member Typedef Documentation

◆ Result

template<typename Traits , typename... Fs>
using grpc_core::promise_detail::BasicJoin< Traits, Fs >::Result = decltype(Traits::Wrap(std::declval<Tuple>()))

Definition at line 178 of file basic_join.h.

◆ Tuple

template<typename Traits , typename... Fs>
using grpc_core::promise_detail::BasicJoin< Traits, Fs >::Tuple = std::tuple<typename Fused<Traits, Fs>::Result...>
private

Definition at line 156 of file basic_join.h.

Constructor & Destructor Documentation

◆ BasicJoin() [1/3]

template<typename Traits , typename... Fs>
grpc_core::promise_detail::BasicJoin< Traits, Fs >::BasicJoin ( Fs &&...  fs)
inlineexplicit

Definition at line 165 of file basic_join.h.

◆ BasicJoin() [2/3]

template<typename Traits , typename... Fs>
grpc_core::promise_detail::BasicJoin< Traits, Fs >::BasicJoin ( const BasicJoin< Traits, Fs > &  other)
inline

Definition at line 168 of file basic_join.h.

◆ BasicJoin() [3/3]

template<typename Traits , typename... Fs>
grpc_core::promise_detail::BasicJoin< Traits, Fs >::BasicJoin ( BasicJoin< Traits, Fs > &&  other)
inlinenoexcept

Definition at line 173 of file basic_join.h.

◆ ~BasicJoin()

template<typename Traits , typename... Fs>
grpc_core::promise_detail::BasicJoin< Traits, Fs >::~BasicJoin ( )
inline

Definition at line 177 of file basic_join.h.

Member Function Documentation

◆ Finish()

template<typename Traits , typename... Fs>
template<size_t... I>
Tuple grpc_core::promise_detail::BasicJoin< Traits, Fs >::Finish ( absl::index_sequence< I... >  )
inlineprivate

Definition at line 160 of file basic_join.h.

◆ GetJoint()

template<typename Traits , typename... Fs>
template<size_t I>
Joint<Traits, sizeof...(Fs) - I, Fs...>* grpc_core::promise_detail::BasicJoin< Traits, Fs >::GetJoint ( )
inlineprivate

Definition at line 151 of file basic_join.h.

◆ operator()()

template<typename Traits , typename... Fs>
Poll<Result> grpc_core::promise_detail::BasicJoin< Traits, Fs >::operator() ( )
inline

Definition at line 180 of file basic_join.h.

◆ operator=()

template<typename Traits , typename... Fs>
BasicJoin& grpc_core::promise_detail::BasicJoin< Traits, Fs >::operator= ( const BasicJoin< Traits, Fs > &  )
delete

Member Data Documentation

◆ @23

union { ... }

◆ joints_

template<typename Traits , typename... Fs>
GPR_NO_UNIQUE_ADDRESS Joint<Traits, sizeof...(Fs), Fs...> grpc_core::promise_detail::BasicJoin< Traits, Fs >::joints_

Definition at line 146 of file basic_join.h.

◆ N

template<typename Traits , typename... Fs>
constexpr size_t grpc_core::promise_detail::BasicJoin< Traits, Fs >::N = sizeof...(Fs)
staticconstexprprivate

Definition at line 139 of file basic_join.h.

◆ state_

template<typename Traits , typename... Fs>
GPR_NO_UNIQUE_ADDRESS BitSet<N> grpc_core::promise_detail::BasicJoin< Traits, Fs >::state_
private

Definition at line 142 of file basic_join.h.


The documentation for this class was generated from the following file:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:39