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 {
62 void SetReadError(
Status status);
137 write_thread_options,
165 write_allocation_future_.SetDesiredSize(min_bytes);
166 return write_allocation_future_.Pend(cx);
Definition: no_destructor.h:77
Definition: channel.h:583
Definition: stream_channel.h:117
State for the stream-reading thread.
Definition: stream_channel.h:31
State for the stream-writing thread.
Definition: stream_channel.h:73
Definition: allocator_async.h:93
Definition: allocator.h:57
Definition: multibuf_v1.h:248
Definition: interrupt_spin_lock.h:50
Definition: thread_notification.h:38
constexpr Poll Ready()
Returns a value indicating completion.
Definition: poll.h:255
void ReadLoop(stream::Reader &reader)
void ProvideBufferToFill(multibuf::MultiBuf &&buf)
Provide a buffer for ReadLoop to read data into.
Status SendData(multibuf::MultiBuf &&buf)
void WriteLoop(stream::Writer &writer)
async2::PollResult< multibuf::MultiBuf > PendFilledBuffer(async2::Context &cx)
constexpr Status OkStatus()
Definition: status.h:297
#define PW_GUARDED_BY(x)
Definition: lock_annotations.h:60