userver: engine::io::ReadableBase Class Reference
Loading...
Searching...
No Matches
engine::io::ReadableBase Class Referenceabstract

#include <userver/engine/io/common.hpp>

Detailed Description

Interface for readable streams

Definition at line 55 of file common.hpp.

+ Inheritance diagram for engine::io::ReadableBase:

Public Member Functions

virtual bool IsValid () const =0
 Whether the stream is valid.
 
virtual std::optional< size_t > ReadNoblock (void *buf, size_t len)
 
virtual size_t ReadSome (void *buf, size_t len, Deadline deadline)=0
 Receives at least one byte from the stream.
 
virtual size_t ReadAll (void *buf, size_t len, Deadline deadline)=0
 
virtual bool WaitReadable (Deadline)=0
 Suspends current task until the stream has data available.
 
AwaitableToken GetAwaitableToken ()
 Satisfies engine::Awaitable, for use with engine::WaitAnyContext and friends.
 

Protected Member Functions

void SetReadableAwaitableToken (AwaitableToken token)
 

Member Function Documentation

◆ GetAwaitableToken()

AwaitableToken engine::io::ReadAwaiter::GetAwaitableToken ( )
inlineinherited

Satisfies engine::Awaitable, for use with engine::WaitAnyContext and friends.

Definition at line 39 of file common.hpp.

◆ IsValid()

virtual bool engine::io::ReadableBase::IsValid ( ) const
pure virtual

Whether the stream is valid.

Implemented in engine::io::PipeReader, engine::io::Socket, and engine::io::TlsWrapper.

◆ ReadAll()

virtual size_t engine::io::ReadableBase::ReadAll ( void * buf,
size_t len,
Deadline deadline )
nodiscardpure virtual

Receives exactly len bytes from the stream.

Note
Can return less than len if stream is closed by peer.

Implemented in engine::io::PipeReader, engine::io::Socket, and engine::io::TlsWrapper.

◆ ReadNoblock()

virtual std::optional< size_t > engine::io::ReadableBase::ReadNoblock ( void * buf,
size_t len )
inlinenodiscardvirtual

Receives up to len (including zero) bytes from the stream.

Returns
filled-in optional on data presence (e.g. 0, 1, 2... bytes) empty optional otherwise

Reimplemented in engine::io::Socket, and engine::io::TlsWrapper.

Definition at line 65 of file common.hpp.

◆ ReadSome()

virtual size_t engine::io::ReadableBase::ReadSome ( void * buf,
size_t len,
Deadline deadline )
nodiscardpure virtual

Receives at least one byte from the stream.

Implemented in engine::io::PipeReader, engine::io::Socket, and engine::io::TlsWrapper.

◆ SetReadableAwaitableToken()

void engine::io::ReadAwaiter::SetReadableAwaitableToken ( AwaitableToken token)
inlineprotectedinherited

Definition at line 44 of file common.hpp.

◆ WaitReadable()

virtual bool engine::io::ReadAwaiter::WaitReadable ( Deadline )
nodiscardpure virtualinherited

Suspends current task until the stream has data available.

Implemented in engine::io::PipeReader, engine::io::Socket, and engine::io::TlsWrapper.


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