Pigweed
C/C++ API Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
pw::channel::internal::BasePacketChannelImpl< Packet, kProperties > Class Template Reference
Inheritance diagram for pw::channel::internal::BasePacketChannelImpl< Packet, kProperties >:
pw::channel::AnyPacketChannel< Packet > pw::channel::PacketChannel< T, kProperties > pw::channel::PacketChannel< T, kProperties > pw::channel::PacketChannel< T, kProperties >

Public Types

using Channel = PacketChannel< Packet, kProperties... >
 
- Public Types inherited from pw::channel::AnyPacketChannel< Packet >
using Packet = Packet
 

Public Member Functions

Channelchannel ()
 
const Channelchannel () const
 
template<typename Sibling >
Sibling & as ()
 Returns a reference to this as another compatible packet channel type.
 
template<typename Sibling >
const Sibling & as () const
 
template<Property... kOtherProperties>
auto & as ()
 
template<Property... kOtherProperties>
const auto & as () const
 
async2::Poll< Result< Packet > > PendRead (async2::Context &cx)
 
void AcknowledgeWrites (uint16_t num_completed)
 
uint16_t GetAvailableWrites () const
 
async2::Poll< Result< PendingWrite< Packet > > > PendReadyToWrite (async2::Context &cx, size_t num=1)
 
async2::Poll PendWrite (async2::Context &cx)
 
void SetAvailableWrites (uint16_t available_writes)
 
async2::Poll< StatusPendClose (async2::Context &cx)
 
- Public Member Functions inherited from pw::channel::AnyPacketChannel< Packet >
constexpr bool readable () const
 Returns whether the channel implementation is readable.
 
constexpr bool writable () const
 Returns whether the channel implementation is writable.
 
constexpr bool is_read_open () const
 
constexpr bool is_write_open () const
 
constexpr bool is_read_or_write_open () const
 True if the channel is open for either reading or writing.
 
async2::Poll< Result< Packet > > PendRead (async2::Context &cx)
 
async2::Poll< Result< PendingWrite< Packet > > > PendReadyToWrite (async2::Context &cx, size_t num=1)
 
async2::Poll PendWrite (async2::Context &cx)
 
void SetAvailableWrites (uint16_t available_writes)
 
void AcknowledgeWrites (uint16_t num_completed)
 
async2::Poll< StatusPendClose (async2::Context &cx)
 

Friends

class PacketChannelImpl< Packet, kProperties... >
 

Additional Inherited Members

- Protected Member Functions inherited from pw::channel::AnyPacketChannel< Packet >
uint16_t GetAvailableWrites () const
 
void set_read_closed ()
 
void set_write_closed ()
 
void set_read_write_closed ()
 
async2::Wakerwrite_waker ()
 Allows implementations to access the write waker.
 

Detailed Description

template<typename Packet, Property... kProperties>
class pw::channel::internal::BasePacketChannelImpl< Packet, kProperties >

Common class for channel implementations that associates a channel implementation with its top-level typed PacketChannel.

Member Function Documentation

◆ as()

template<typename Packet , Property... kProperties>
template<Property... kOtherProperties>
auto & pw::channel::PacketChannel< T, kProperties >::as ( )
inline

Returns a reference to this channel as another channel with the specified properties, which must be compatible.


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