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,
160 write_allocation_future_.SetDesiredSize(min_bytes);
161 return write_allocation_future_.Pend(cx);
Definition: dispatcher_base.h:52
Definition: dispatcher_base.h:318
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:90
Definition: allocator.h:54
Definition: multibuf.h:245
Definition: interrupt_spin_lock.h:48
Definition: thread_notification.h:36
constexpr Status OkStatus()
Definition: status.h:234