5#include <boost/assert.hpp>
36 template <
typename Stream>
102 [[nodiscard]] uv_os_fd_t
fd()
const;
115 std::unique_ptr<uv_stream_t, UvHandleDeleter>
stream_;
Promise< void > shutdown()
Definition stream.cc:144
Promise< std::optional< std::string > > read(size_t maxSize=defaultMaxReadSize)
Definition stream.cc:96
static constexpr size_t defaultMaxReadSize
Definition stream.h:50
StreamBase & operator=(const StreamBase &)=delete
StreamBase(StreamBase &&)=default
uv_stream_t & stream()
Definition stream.h:105
StreamBase & operator=(StreamBase &&)=default
std::coroutine_handle reader_
Definition stream.h:118
const uv_stream_t * underlying() const
Return the underlying UV stream object.
Definition stream.h:100
virtual ~StreamBase()
Definition stream.cc:84
Promise< size_t > write(std::string buf)
Definition stream.cc:114
StreamBase(const StreamBase &)=delete
std::coroutine_handle writer_
Definition stream.h:119
Promise< size_t > writeBorrowed(std::span< const char > buf)
Definition stream.cc:118
void destroyStream()
Definition stream.h:109
StreamBase(std::unique_ptr< Stream > stream)
Definition stream.h:37
void close()
Definition stream.cc:155
uv_os_fd_t fd() const
Definition stream.cc:343
std::unique_ptr< uv_stream_t, UvHandleDeleter > stream_
Definition stream.h:115
TtyStream & operator=(TtyStream &&)=default
static TtyStream tty(const Loop &loop, int fd)
Definition stream.cc:86
TtyStream(TtyStream &&other)=default
TtyStream & operator=(const TtyStream &)=delete
~TtyStream() override=default
TtyStream(const TtyStream &other)=delete
TtyStream(std::unique_ptr< uv_tty_t > stream)
Definition stream.h:143
static TtyStream stdin(const Loop &loop)
Definition stream.h:138
static TtyStream stdout(const Loop &loop)
Definition stream.h:139
static TtyStream stderr(const Loop &loop)
Definition stream.h:140
Definition async_work.cc:18