|
uv_fs_t | req_ = {} |
|
std::optional< std::coroutine_handle<> > | handle_ |
|
std::optional< ssize_t > | result_ = std::nullopt |
|
◆ FileOpAwaiter_() [1/3]
uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::FileOpAwaiter_ |
( |
| ) |
|
|
default |
◆ FileOpAwaiter_() [2/3]
uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::FileOpAwaiter_ |
( |
const FileOpAwaiter_ & |
| ) |
|
|
delete |
◆ FileOpAwaiter_() [3/3]
uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::FileOpAwaiter_ |
( |
FileOpAwaiter_ && |
| ) |
|
|
delete |
◆ ~FileOpAwaiter_()
uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::~FileOpAwaiter_ |
( |
| ) |
|
|
inline |
49{ uv_fs_req_cleanup(&
req_); }
uv_fs_t req_
Definition fs.cc:81
◆ await_ready()
bool uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::await_ready |
( |
| ) |
const |
|
inlinenoexcept |
55 {
57 }
std::optional< ssize_t > result_
Definition fs.cc:83
◆ await_resume()
void uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::await_resume |
( |
| ) |
|
|
inline |
The callback is guaranteed to have been called once the awaiting coroutine is resumed.
69 {
73 "file operation failed");
75 throw UvcoException(UV_EAGAIN,
76 "file operation not yet finished (this is a bug)");
77 }
78 }
int uv_status
Result of a libuv operation, an errno error code.
Definition internal_utils.h:22
◆ await_suspend()
bool uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::await_suspend |
( |
std::coroutine_handle<> |
handle | ) |
|
|
inline |
59 {
61 BOOST_ASSERT_MSG(!
handle_,
"FileOpAwaiter_ can only be awaited once");
64 return true;
65 }
std::optional< std::coroutine_handle<> > handle_
Definition fs.cc:82
void setRequestData(Request *req, Data *data)
Definition internal_utils.h:61
◆ onFileOpDone()
static void uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::onFileOpDone |
( |
uv_fs_t * |
req | ) |
|
|
inlinestaticprivate |
34 {
35 auto *awaiter = getRequestData<FileOpAwaiter_>(
req);
36 awaiter->result_ =
req->result;
37 awaiter->schedule();
38 }
uv_fs_t & req()
Obtain the uv_fs_t struct to fill in before starting the operation.
Definition fs.cc:52
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ req()
uv_fs_t & uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::req |
( |
| ) |
|
|
inline |
Obtain the uv_fs_t
struct to fill in before starting the operation.
◆ schedule()
void uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::schedule |
( |
| ) |
|
|
inlineprivate |
85 {
87 const auto handle =
handle_.value();
90 }
91 }
static void enqueue(std::coroutine_handle<> handle)
Definition loop.cc:73
◆ uvCallback()
static uv_fs_cb uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::uvCallback |
( |
| ) |
|
|
inlinestatic |
static void onFileOpDone(uv_fs_t *req)
Definition fs.cc:34
◆ handle_
std::optional<std::coroutine_handle<> > uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::handle_ |
|
private |
◆ req_
uv_fs_t uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::req_ = {} |
|
private |
◆ result_
std::optional<ssize_t> uvco::anonymous_namespace{fs.cc}::FileOpAwaiter_::result_ = std::nullopt |
|
private |
The documentation for this class was generated from the following file: