Async, zero-copy API for sending and receiving bytes or datagrams.
Main docs: Home
Submodules | |
| Forwarding | |
| Loopback | |
| RP2 stdio | |
| Stream channel | |
Classes | |
| class | pw::channel::Channel< kDataType, kProperties > |
| class | pw::channel::AnyChannel |
| class | pw::channel::ChannelImpl< kDataType, kProperties > |
| class | pw::channel::Implement< ChannelType > |
| class | pw::channel::internal::ForwardingChannel< kType > |
| class | pw::channel::internal::ForwardingChannel< DataType::kDatagram > |
| class | pw::channel::internal::ForwardingChannel< DataType::kByte > |
| class | pw::channel::LoopbackChannel< DataType::kDatagram > |
| class | pw::channel::LoopbackChannel< DataType::kByte > |
| class | pw::channel::internal::StreamChannelReadState |
| State for the stream-reading thread. More... | |
| class | pw::channel::internal::StreamChannelWriteState |
| State for the stream-writing thread. More... | |
Typedefs | |
| template<Property... kProperties> | |
| using | pw::channel::ByteChannel = Channel< DataType::kByte, kProperties... > |
A ByteChannel exchanges data as a stream of bytes. | |
| template<Property... kProperties> | |
| using | pw::channel::DatagramChannel = Channel< DataType::kDatagram, kProperties... > |
A DatagramChannel exchanges data as a series of datagrams. | |
| using | pw::channel::ByteReader = ByteChannel< kReadable > |
Unreliable byte-oriented Channel that supports reading. | |
| using | pw::channel::ByteWriter = ByteChannel< kWritable > |
Unreliable byte-oriented Channel that supports writing. | |
| using | pw::channel::ByteReaderWriter = ByteChannel< kReadable, kWritable > |
Unreliable byte-oriented Channel that supports reading and writing. | |
| using | pw::channel::ReliableByteReader = ByteChannel< kReliable, kReadable > |
Reliable byte-oriented Channel that supports reading. | |
| using | pw::channel::ReliableByteWriter = ByteChannel< kReliable, kWritable > |
Reliable byte-oriented Channel that supports writing. | |
| using | pw::channel::ReliableByteReaderWriter = ByteChannel< kReliable, kReadable, kWritable > |
Reliable byte-oriented Channel that supports reading and writing. | |
| using | pw::channel::DatagramReader = DatagramChannel< kReadable > |
Unreliable datagram-oriented Channel that supports reading. | |
| using | pw::channel::DatagramWriter = DatagramChannel< kWritable > |
Unreliable datagram-oriented Channel that supports writing. | |
| using | pw::channel::DatagramReaderWriter = DatagramChannel< kReadable, kWritable > |
Unreliable datagram-oriented Channel that supports reading and writing. | |
| using | pw::channel::ReliableDatagramReader = DatagramChannel< kReliable, kReadable > |
Reliable datagram-oriented Channel that supports reading. | |
| using | pw::channel::ReliableDatagramWriter = DatagramChannel< kReliable, kWritable > |
Reliable datagram-oriented Channel that supports writing. | |
| using | pw::channel::ReliableDatagramReaderWriter = DatagramChannel< kReliable, kReadable, kWritable > |
Reliable datagram-oriented Channel that supports reading and writing. | |
| template<Property... kProperties> | |
| using | pw::channel::ByteChannelImpl = ChannelImpl< DataType::kByte, kProperties... > |
Implement a byte-oriented Channel with the specified properties. | |
| template<Property... kProperties> | |
| using | pw::channel::DatagramChannelImpl = ChannelImpl< DataType::kDatagram, kProperties... > |
Implement a datagram-oriented Channel with the specified properties. | |
Functions | |
| constexpr | pw::channel::ForwardingChannelPair< kType >::ForwardingChannelPair (multibuf::MultiBufAllocator &first_write_alloc, multibuf::MultiBufAllocator &second_write_alloc) |
| pw::channel::ForwardingChannelPair< kType >::ForwardingChannelPair (const ForwardingChannelPair &)=delete | |
| ForwardingChannelPair & | pw::channel::ForwardingChannelPair< kType >::operator= (const ForwardingChannelPair &)=delete |
| pw::channel::ForwardingChannelPair< kType >::ForwardingChannelPair (ForwardingChannelPair &&)=delete | |
| ForwardingChannelPair & | pw::channel::ForwardingChannelPair< kType >::operator= (ForwardingChannelPair &&)=delete |
| Channel< kType, kReliable, kReadable, kWritable > & | pw::channel::ForwardingChannelPair< kType >::first () |
| Returns the first channel in the pair. | |
| const Channel< kType, kReliable, kReadable, kWritable > & | pw::channel::ForwardingChannelPair< kType >::first () const |
| Returns a const reference to the first channel in the pair. | |
| Channel< kType, kReliable, kReadable, kWritable > & | pw::channel::ForwardingChannelPair< kType >::second () |
| Returns the second channel in the pair. | |
| const Channel< kType, kReliable, kReadable, kWritable > & | pw::channel::ForwardingChannelPair< kType >::second () const |
| Returns a const reference to the second channel in the pair. | |
| pw::channel::internal::ForwardingChannel< DataType::kDatagram >::ForwardingChannel (const ForwardingChannel &)=delete | |
| ForwardingChannel & | pw::channel::internal::ForwardingChannel< DataType::kDatagram >::operator= (const ForwardingChannel &)=delete |
| pw::channel::internal::ForwardingChannel< DataType::kDatagram >::ForwardingChannel (ForwardingChannel &&)=delete | |
| ForwardingChannel & | pw::channel::internal::ForwardingChannel< DataType::kDatagram >::operator= (ForwardingChannel &&)=delete |
| pw::channel::internal::ForwardingChannel< DataType::kByte >::ForwardingChannel (const ForwardingChannel &)=delete | |
| ForwardingChannel & | pw::channel::internal::ForwardingChannel< DataType::kByte >::operator= (const ForwardingChannel &)=delete |
| pw::channel::internal::ForwardingChannel< DataType::kByte >::ForwardingChannel (ForwardingChannel &&)=delete | |
| ForwardingChannel & | pw::channel::internal::ForwardingChannel< DataType::kByte >::operator= (ForwardingChannel &&)=delete |
| pw::channel::LoopbackChannel< DataType::kDatagram >::LoopbackChannel (multibuf::MultiBufAllocator &write_allocator) | |
| pw::channel::LoopbackChannel< DataType::kDatagram >::LoopbackChannel (const LoopbackChannel &)=delete | |
| LoopbackChannel & | pw::channel::LoopbackChannel< DataType::kDatagram >::operator= (const LoopbackChannel &)=delete |
| pw::channel::LoopbackChannel< DataType::kDatagram >::LoopbackChannel (LoopbackChannel &&)=default | |
| LoopbackChannel & | pw::channel::LoopbackChannel< DataType::kDatagram >::operator= (LoopbackChannel &&)=default |
| pw::channel::LoopbackChannel< DataType::kByte >::LoopbackChannel (multibuf::MultiBufAllocator &write_allocator) | |
| pw::channel::LoopbackChannel< DataType::kByte >::LoopbackChannel (const LoopbackChannel &)=delete | |
| LoopbackChannel & | pw::channel::LoopbackChannel< DataType::kByte >::operator= (const LoopbackChannel &)=delete |
| pw::channel::LoopbackChannel< DataType::kByte >::LoopbackChannel (LoopbackChannel &&)=default | |
| LoopbackChannel & | pw::channel::LoopbackChannel< DataType::kByte >::operator= (LoopbackChannel &&)=default |
| pw::channel::internal::StreamChannelReadState::StreamChannelReadState (const StreamChannelReadState &)=delete | |
| StreamChannelReadState & | pw::channel::internal::StreamChannelReadState::operator= (const StreamChannelReadState &)=delete |
| pw::channel::internal::StreamChannelReadState::StreamChannelReadState (StreamChannelReadState &&)=delete | |
| StreamChannelReadState & | pw::channel::internal::StreamChannelReadState::operator= (StreamChannelReadState &&)=delete |
| bool | pw::channel::internal::StreamChannelReadState::HasBufferToFill () |
| void | pw::channel::internal::StreamChannelReadState::ProvideBufferToFill (multibuf::MultiBuf &&buf) |
Provide a buffer for ReadLoop to read data into. | |
| async2::PollResult< multibuf::MultiBuf > | pw::channel::internal::StreamChannelReadState::PendFilledBuffer (async2::Context &cx) |
| void | pw::channel::internal::StreamChannelReadState::ReadLoop (stream::Reader &reader) |
| pw::channel::internal::StreamChannelWriteState::StreamChannelWriteState (const StreamChannelWriteState &)=delete | |
| StreamChannelWriteState & | pw::channel::internal::StreamChannelWriteState::operator= (const StreamChannelWriteState &)=delete |
| pw::channel::internal::StreamChannelWriteState::StreamChannelWriteState (StreamChannelWriteState &&)=delete | |
| StreamChannelWriteState & | pw::channel::internal::StreamChannelWriteState::operator= (StreamChannelWriteState &&)=delete |
| Status | pw::channel::internal::StreamChannelWriteState::SendData (multibuf::MultiBuf &&buf) |
| void | pw::channel::internal::StreamChannelWriteState::WriteLoop (stream::Writer &writer) |
| pw::channel::StreamChannel::StreamChannel (stream::Reader &reader, const thread::Options &read_thread_options, multibuf::MultiBufAllocator &read_allocator, stream::Writer &writer, const thread::Options &write_thread_option, multibuf::MultiBufAllocator &write_allocator) | |
| pw::channel::StreamChannel::StreamChannel (multibuf::MultiBufAllocator &allocator, stream::Reader &reader, const thread::Options &read_thread_options, stream::Writer &writer, const thread::Options &write_thread_options) | |
| pw::channel::StreamChannel::StreamChannel (const StreamChannel &)=delete | |
| StreamChannel & | pw::channel::StreamChannel::operator= (const StreamChannel &)=delete |
| pw::channel::StreamChannel::StreamChannel (StreamChannel &&)=delete | |
| StreamChannel & | pw::channel::StreamChannel::operator= (StreamChannel &&)=delete |
| bool pw::channel::internal::StreamChannelReadState::HasBufferToFill | ( | ) |
Whether or not the ReadLoop already has a buffer available into which data can be read.
| async2::PollResult< multibuf::MultiBuf > pw::channel::internal::StreamChannelReadState::PendFilledBuffer | ( | async2::Context & | cx | ) |
Receives any available data processed by ReadLoop.
If no data is available, schedules a wakeup of the task in cx when new data arrives.
| void pw::channel::internal::StreamChannelReadState::ReadLoop | ( | stream::Reader & | reader | ) |
A loop which reads data from reader into buffers provided by ProvideBufferToFill and then makes them available via PendFilledBuffer.
This is blocking and is intended to be run on an independent thread.
| Status pw::channel::internal::StreamChannelWriteState::SendData | ( | multibuf::MultiBuf && | buf | ) |
Queues buf to be sent into writer via the WriteLoop.
Returns a status indicating whether the WriteLoop has encountered errors writing into writer.
| void pw::channel::internal::StreamChannelWriteState::WriteLoop | ( | stream::Writer & | writer | ) |
A loop which writes the data sent via SendData into writer.
This is blocking and is intended to be run on an independent thread.