16#include "pw_async2/dispatcher_base.h"
17#include "pw_channel/channel.h"
18#include "pw_multibuf/allocator.h"
19#include "pw_multibuf/allocator_async.h"
20#include "pw_multibuf/multibuf.h"
21#include "pw_status/status.h"
22#include "pw_stream/stream.h"
23#include "pw_sync/interrupt_spin_lock.h"
24#include "pw_sync/thread_notification.h"
25#include "pw_thread/thread.h"
27namespace pw::channel {
63 void SetReadError(
Status status);
70 Status status_ PW_GUARDED_BY(buffer_lock_);
136 write_thread_options,
164 write_allocation_future_.SetDesiredSize(min_bytes);
165 return write_allocation_future_.Pend(cx);
Definition: no_destructor.h:75
Definition: channel.h:583
Definition: stream_channel.h:116
State for the stream-reading thread.
Definition: stream_channel.h:31
void ReadLoop(stream::Reader &reader)
void ProvideBufferToFill(multibuf::MultiBuf &&buf)
Provide a buffer for ReadLoop to read data into.
async2::Poll< Result< multibuf::MultiBuf > > PendFilledBuffer(async2::Context &cx)
State for the stream-writing thread.
Definition: stream_channel.h:74
Status SendData(multibuf::MultiBuf &&buf)
void WriteLoop(stream::Writer &writer)
Definition: allocator_async.h:91
Definition: allocator.h:55
Definition: multibuf_v1.h:246
Definition: interrupt_spin_lock.h:48
Definition: thread_notification.h:36
constexpr Status OkStatus()
Definition: status.h:234