C/C++ API Reference
Loading...
Searching...
No Matches
Deprecated

Overview

Deprecated APIs.

Classes

class  pw::async2::OnceSender< T >
 
class  pw::async2::OnceReceiver< T >
 
class  pw::async2::OnceRefSender< T >
 
class  pw::async2::OnceRefReceiver< T >
 
class  pw::async2::PendFuncAwaitable< T, Func >
 
class  pw::async2::MemberPendableWrapper< Func >
 
class  pw::async2::FreePendableWrapper< Func >
 
class  pw::async2::WakerQueue< kCapacity >
 

Functions

pw::sync::InterruptSpinLockpw::async2::sender_receiver_lock ()
 
template<typename T >
std::pair< OnceSender< T >, OnceReceiver< T > > pw::async2::MakeOnceSenderAndReceiver ()
 Construct a pair of OnceSender and OnceReceiver.
 
template<typename T >
void pw::async2::InitializeOnceSenderAndReceiver (OnceSender< T > &sender, OnceReceiver< T > &receiver)
 Initialize a pair of OnceSender and OnceReceiver.
 
template<typename T >
std::pair< OnceRefSender< T >, OnceRefReceiver< T > > pw::async2::MakeOnceRefSenderAndReceiver (T &value)
 
template<typename T >
void pw::async2::InitializeOnceRefSenderAndReceiver (OnceRefSender< T > &sender, OnceRefReceiver< T > &receiver, T &value)
 
template<typename Callable >
 pw::async2::PendFuncAwaitable (Callable) -> PendFuncAwaitable< typename std::invoke_result< Callable, Context & >::type::value_type, typename std::remove_reference< Callable >::type >
 
template<auto MemberFunc, typename Traits = internal::PendableTraits<decltype(MemberFunc)>, typename = std::enable_if_t< Traits::kIsPendable && std::is_member_function_pointer_v<decltype(MemberFunc)>>, typename... Args>
constexpr MemberPendableWrapper< MemberFunc > pw::async2::PendableFor (typename Traits::Class &obj, Args &&... args)
 
template<auto FreeFunc, typename Traits = internal::PendableTraits<decltype(FreeFunc)>, typename = std::enable_if_t< Traits::kIsPendable && !std::is_member_function_pointer_v<decltype(FreeFunc)>>, typename... Args>
constexpr FreePendableWrapper< FreeFunc > pw::async2::PendableFor (Args &&... args)
 

Function Documentation

◆ InitializeOnceRefSenderAndReceiver()

template<typename T >
void pw::async2::InitializeOnceRefSenderAndReceiver ( OnceRefSender< T > &  sender,
OnceRefReceiver< T > &  receiver,
T &  value 
)

Initialize a pair of OnceRefSender and OnceRefReceiver.

Parameters
[in]valueThe reference to be mutated by the sender. It must mot be read or modified until either OnceRefSender indicates Ready() or either the OnceRefSender or OnceRefReceiver is destroyed.

◆ MakeOnceRefSenderAndReceiver()

template<typename T >
std::pair< OnceRefSender< T >, OnceRefReceiver< T > > pw::async2::MakeOnceRefSenderAndReceiver ( T &  value)

Constructs a joined pair of OnceRefSender and OnceRefReceiver.

Parameters
[in]valueThe reference to be mutated by the sender. It must mot be read or modified until either OnceRefSender indicates Ready() or either the OnceRefSender or OnceRefReceiver is destroyed.

◆ PendableFor() [1/2]

template<auto FreeFunc, typename Traits = internal::PendableTraits<decltype(FreeFunc)>, typename = std::enable_if_t< Traits::kIsPendable && !std::is_member_function_pointer_v<decltype(FreeFunc)>>, typename... Args>
constexpr FreePendableWrapper< FreeFunc > pw::async2::PendableFor ( Args &&...  args)
inlineconstexpr

Wraps a pendable free function in an object which has a single Pend method, allowing it to be used more broadly.

The wrapper stores the arguments used to invoke the target function. As a result, the argument types must be copyable.

The wrapping pendable object can only be used a single time. After its Pend method returns Ready, it will crash if called again.

◆ PendableFor() [2/2]

template<auto MemberFunc, typename Traits = internal::PendableTraits<decltype(MemberFunc)>, typename = std::enable_if_t< Traits::kIsPendable && std::is_member_function_pointer_v<decltype(MemberFunc)>>, typename... Args>
constexpr MemberPendableWrapper< MemberFunc > pw::async2::PendableFor ( typename Traits::Class &  obj,
Args &&...  args 
)
inlineconstexpr

Wraps a pendable member function in an object which has a single Pend method, allowing it to be used more broadly.

The wrapper stores the arguments used to invoke the target function. As a result, the argument types must be copyable.

The wrapping pendable object can only be used a single time. After its Pend method returns Ready, it will crash if called again.