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

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

Detailed Description

Interface for readable and writable streams

Definition at line 142 of file common.hpp.

Inheritance diagram for engine::io::RwBase:

Public Member Functions

ReadableBaseGetReadableBase ()
WritableBaseGetWritableBase ()
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.
virtual size_t WriteAll (const void *buf, size_t len, Deadline deadline)=0
 Sends exactly len bytes of buf.
virtual size_t WriteAll (std::span< const IoData > list, Deadline deadline)
 Sends IoData array using vector I/O (e.g. writev).
virtual size_t WriteAll (std::initializer_list< IoData > list, Deadline deadline)
 Sends IoData initializer list using vector I/O (e.g. writev).
virtual bool WaitWriteable (Deadline deadline)=0
 Suspends current task until the data is available.
AwaitableToken GetAwaitableToken ()
 Satisfies engine::Awaitable, for use with engine::WaitAnyContext and friends.

Protected Member Functions

void SetReadableAwaitableToken (AwaitableToken token)
void SetWritableAwaitableToken (AwaitableToken token)

Member Function Documentation

◆ GetAwaitableToken() [1/2]

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

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

Definition at line 39 of file common.hpp.

◆ GetAwaitableToken() [2/2]

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

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

Definition at line 91 of file common.hpp.

◆ GetReadableBase()

ReadableBase & engine::io::RwBase::GetReadableBase ( )
inline

Definition at line 146 of file common.hpp.

◆ GetWritableBase()

WritableBase & engine::io::RwBase::GetWritableBase ( )
inline

Definition at line 148 of file common.hpp.

◆ IsValid()

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

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 virtualinherited

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 )
inlinenodiscardvirtualinherited

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 virtualinherited

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.

◆ SetWritableAwaitableToken()

void engine::io::WriteAwaiter::SetWritableAwaitableToken ( AwaitableToken token)
inlineprotectedinherited

Definition at line 96 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.

◆ WaitWriteable()

virtual bool engine::io::WriteAwaiter::WaitWriteable ( Deadline deadline)
nodiscardpure virtualinherited

Suspends current task until the data is available.

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

◆ WriteAll() [1/3]

virtual size_t engine::io::WritableBase::WriteAll ( const void * buf,
size_t len,
Deadline deadline )
nodiscardpure virtualinherited

Sends exactly len bytes of buf.

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

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

◆ WriteAll() [2/3]

virtual size_t engine::io::WritableBase::WriteAll ( std::initializer_list< IoData > list,
Deadline deadline )
inlinenodiscardvirtualinherited

Sends IoData initializer list using vector I/O (e.g. writev).

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

Reimplemented in engine::io::TlsWrapper.

Definition at line 133 of file common.hpp.

◆ WriteAll() [3/3]

virtual size_t engine::io::WritableBase::WriteAll ( std::span< const IoData > list,
Deadline deadline )
inlinenodiscardvirtualinherited

Sends IoData array using vector I/O (e.g. writev).

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

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

Definition at line 123 of file common.hpp.


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