Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::runtime::Stream Class Referenceabstract

Base class for all Pulp byte streams. More...

#include <stream.hpp>

Public Member Functions

virtual ~Stream ()=default
 Stream (const Stream &)=delete
Stream & operator= (const Stream &)=delete
virtual StreamResult read (std::uint8_t *buffer, std::size_t size)=0
 Read up to size bytes into buffer.
virtual StreamResult write (const std::uint8_t *buffer, std::size_t size)=0
 Write up to size bytes from buffer.
virtual void close ()=0
 Close the stream. Idempotent.
virtual bool is_open () const =0
 True while the stream is usable for read/write.

Protected Member Functions

 Stream ()=default

Detailed Description

Base class for all Pulp byte streams.

Implementations must be safe to destroy from any thread, but individual instances are not thread-safe: callers coordinate access (typically the owning AsyncStream serializes on a worker thread).

Constructor & Destructor Documentation

◆ ~Stream()

virtual pulp::runtime::Stream::~Stream ( )
virtualdefault

◆ Stream() [1/2]

pulp::runtime::Stream::Stream ( const Stream & )
delete

◆ Stream() [2/2]

pulp::runtime::Stream::Stream ( )
protecteddefault

Member Function Documentation

◆ close()

virtual void pulp::runtime::Stream::close ( )
pure virtual

◆ is_open()

virtual bool pulp::runtime::Stream::is_open ( ) const
pure virtual

◆ operator=()

Stream & pulp::runtime::Stream::operator= ( const Stream & )
delete

◆ read()

virtual StreamResult pulp::runtime::Stream::read ( std::uint8_t * buffer,
std::size_t size )
pure virtual

Read up to size bytes into buffer.

Returns how many bytes were written, or an error. buffer may be partially filled on error.

Implemented in pulp::runtime::FileStream, pulp::runtime::HttpStream, pulp::runtime::MemoryStream, pulp::runtime::PipeStream, and pulp::runtime::TcpStream.

◆ write()

virtual StreamResult pulp::runtime::Stream::write ( const std::uint8_t * buffer,
std::size_t size )
pure virtual

Write up to size bytes from buffer.

Returns how many bytes were consumed. Partial writes are permitted — callers loop until satisfied or treat the short return as backpressure.

Implemented in pulp::runtime::FileStream, pulp::runtime::HttpStream, pulp::runtime::MemoryStream, pulp::runtime::PipeStream, and pulp::runtime::TcpStream.


The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/runtime/include/pulp/runtime/stream.hpp