C/C++ API Reference
Loading...
Searching...
No Matches
pw::async2::internal::Channel< T > Class Template Reference
Inheritance diagram for pw::async2::internal::Channel< T >:
pw::async2::internal::BaseChannel pw::async2::ChannelStorage< T, kCapacity > pw::async2::internal::DynamicChannel< T >

Public Member Functions

Sender< T > CreateSender ()
 
Receiver< T > CreateReceiver ()
 
void PushAndWake (T &&value)
 
void PushAndWake (const T &value)
 
template<typename... Args>
void EmplaceAndWake (Args &&... args)
 
PopAndWake ()
 
bool full () const
 
uint16_t remaining_capacity ()
 
uint16_t remaining_capacity_locked () const
 
uint16_t capacity () const
 
bool empty ()
 
template<typename U >
Status TrySend (U &&value)
 
Result< T > TryReceive ()
 
Result< SendReservation< T > > TryReserveSend ()
 
template<typename... Args>
void CommitReservationAndRemoveRef (Args &&... args)
 
- Public Member Functions inherited from pw::async2::internal::BaseChannel
void lock ()
 
void unlock ()
 
bool is_open ()
 
bool is_open_locked () const
 
bool active_locked () const
 
void RemoveRefAndDestroyIfUnreferenced ()
 
void Close ()
 
void add_send_future (BaseChannelFuture &future)
 
void add_receive_future (BaseChannelFuture &future)
 
void DropReservationAndRemoveRef ()
 
void add_receiver ()
 
void add_sender ()
 
void add_handle ()
 
void add_reservation ()
 
void remove_reservation ()
 
void remove_sender ()
 
void remove_receiver ()
 
void remove_handle ()
 
void add_ref ()
 

Protected Member Functions

constexpr Channel (FixedDeque< T > &&deque)
 
template<size_t kAlignment, size_t kCapacity>
 Channel (containers::Storage< kAlignment, kCapacity > &storage)
 
Deallocatordeallocator () const
 
- Protected Member Functions inherited from pw::async2::internal::BaseChannel
void WakeOneReceiver ()
 
void WakeOneSender ()
 
uint16_t reservations () const
 

Additional Inherited Members

- Static Public Attributes inherited from pw::async2::internal::BaseChannel
static constexpr chrono::SystemClock::duration kWaitForever
 

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