Pigweed
 
Loading...
Searching...
No Matches
pw::channel::internal::StreamChannelReadState Class Reference

State for the stream-reading thread. More...

#include <stream_channel.h>

Public Member Functions

 StreamChannelReadState (const StreamChannelReadState &)=delete
 
StreamChannelReadStateoperator= (const StreamChannelReadState &)=delete
 
 StreamChannelReadState (StreamChannelReadState &&)=delete
 
StreamChannelReadStateoperator= (StreamChannelReadState &&)=delete
 
bool HasBufferToFill ()
 
void ProvideBufferToFill (multibuf::MultiBuf &&buf)
 Provide a buffer for ReadLoop to read data into.
 
async2::Poll< Result< multibuf::MultiBuf > > PendFilledBuffer (async2::Context &cx)
 
void ReadLoop (stream::Reader &reader)
 

Detailed Description

State for the stream-reading thread.

Member Function Documentation

◆ HasBufferToFill()

bool pw::channel::internal::StreamChannelReadState::HasBufferToFill ( )

Whether or not the ReadLoop already has a buffer available into which data can be read.

◆ PendFilledBuffer()

async2::Poll< Result< 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.

◆ ReadLoop()

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.


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