5#include <boost/assert.hpp>
36 template <
typename Stream>
101 [[nodiscard]] uv_os_fd_t
fd()
const;
114 std::unique_ptr<uv_stream_t, UvHandleDeleter>
stream_;
Promise< void > shutdown()
Definition stream.cc:154
Promise< std::optional< std::string > > read(size_t maxSize=defaultMaxReadSize)
Definition stream.cc:105
static constexpr size_t defaultMaxReadSize
Definition stream.h:50
StreamBase & operator=(const StreamBase &)=delete
StreamBase(StreamBase &&)=default
uv_stream_t & stream()
Definition stream.h:104
StreamBase & operator=(StreamBase &&)=default
std::coroutine_handle reader_
Definition stream.h:117
const uv_stream_t * underlying() const
Return the underlying UV stream object.
Definition stream.h:99
virtual ~StreamBase()
Definition stream.cc:93
StreamBase(const StreamBase &)=delete
std::coroutine_handle writer_
Definition stream.h:118
Promise< void > write(std::string buf)
Definition stream.cc:123
void destroyStream()
Definition stream.h:108
StreamBase(std::unique_ptr< Stream > stream)
Definition stream.h:37
void close()
Definition stream.cc:170
uv_os_fd_t fd() const
Definition stream.cc:361
std::unique_ptr< uv_stream_t, UvHandleDeleter > stream_
Definition stream.h:114
TtyStream & operator=(TtyStream &&)=default
static TtyStream tty(const Loop &loop, int fd)
Definition stream.cc:95
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:142
static TtyStream stdin(const Loop &loop)
Definition stream.h:137
static TtyStream stdout(const Loop &loop)
Definition stream.h:138
static TtyStream stderr(const Loop &loop)
Definition stream.h:139
Definition async_work.cc:18