|
static void | allocate (uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf) |
|
static void | onInStreamRead (uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf) |
|
◆ InStreamAwaiter_()
uvco::StreamBase::InStreamAwaiter_::InStreamAwaiter_ |
( |
StreamBase & |
stream, |
|
|
std::span< char > |
buffer |
|
) |
| |
|
inlineexplicit |
uv_stream_t & stream()
Definition stream.h:91
std::span< char > buffer_
Definition stream.h:135
StreamBase & stream_
Definition stream.h:134
◆ allocate()
void uvco::StreamBase::InStreamAwaiter_::allocate |
( |
uv_handle_t * |
handle, |
|
|
size_t |
suggested_size, |
|
|
uv_buf_t * |
buf |
|
) |
| |
|
static |
145 {
147 BOOST_ASSERT(awaiter != nullptr);
148 buf->base = awaiter->buffer_.data();
149 buf->len = awaiter->buffer_.size();
150}
InStreamAwaiter_(StreamBase &stream, std::span< char > buffer)
Definition stream.h:119
◆ await_ready()
bool uvco::StreamBase::InStreamAwaiter_::await_ready |
( |
| ) |
|
104 {
106 if (state == 1) {
107
108
111 }
113}
int uv_status
Result of a libuv operation, an errno error code.
Definition internal_utils.h:22
std::optional< ssize_t > status_
Definition stream.h:136
void start_read()
Definition stream.cc:152
void stop_read()
Definition stream.cc:157
◆ await_resume()
size_t uvco::StreamBase::InStreamAwaiter_::await_resume |
( |
| ) |
|
125 {
127 return {};
128 }
132 return 0;
133 }
135 throw UvcoException{
static_cast<uv_status>(*status_),
136 "StreamBase::read() encountered error"};
137 }
138 BOOST_ASSERT(
status_.value() >= 0);
139 return static_cast<size_t>(
status_.value());
140}
std::optional< std::coroutine_handle<> > reader_
Definition stream.h:103
std::unique_ptr< uv_stream_t, UvHandleDeleter > stream_
Definition stream.h:101
◆ await_suspend()
bool uvco::StreamBase::InStreamAwaiter_::await_suspend |
( |
std::coroutine_handle<> |
handle | ) |
|
116 {
122 return true;
123}
void setData(Handle *handle, Data *data)
Definition internal_utils.h:55
bool dataIsNull(Handle *handle)
Definition internal_utils.h:66
std::optional< std::coroutine_handle<> > handle_
Definition stream.h:137
◆ onInStreamRead()
void uvco::StreamBase::InStreamAwaiter_::onInStreamRead |
( |
uv_stream_t * |
stream, |
|
|
ssize_t |
nread, |
|
|
const uv_buf_t * |
buf |
|
) |
| |
|
static |
164 {
165 auto *awaiter = getData<InStreamAwaiter_>(
stream);
166 BOOST_ASSERT(awaiter != nullptr);
167 awaiter->stop_read();
168 awaiter->status_ = nread;
169
170 if (awaiter->handle_) {
171 auto handle = awaiter->handle_.value();
172 awaiter->handle_.reset();
174 }
176}
static void enqueue(std::coroutine_handle<> handle)
Definition loop.cc:73
◆ start_read()
void uvco::StreamBase::InStreamAwaiter_::start_read |
( |
| ) |
|
152 {
155}
static void allocate(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf)
Definition stream.cc:143
static void onInStreamRead(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf)
Definition stream.cc:162
◆ stop_read()
void uvco::StreamBase::InStreamAwaiter_::stop_read |
( |
| ) |
|
◆ buffer_
std::span<char> uvco::StreamBase::InStreamAwaiter_::buffer_ |
◆ handle_
std::optional<std::coroutine_handle<> > uvco::StreamBase::InStreamAwaiter_::handle_ |
◆ status_
std::optional<ssize_t> uvco::StreamBase::InStreamAwaiter_::status_ |
◆ stream_
StreamBase& uvco::StreamBase::InStreamAwaiter_::stream_ |
The documentation for this struct was generated from the following files: