co_usb
Loading...
Searching...
No Matches
transfer_awaitable.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "boost/capy/concept/io_awaitable.hpp"
4#include "boost/capy/continuation.hpp"
5#include "boost/capy/ex/io_env.hpp"
6#include "boost/capy/io_result.hpp"
7#include <libusb-1.0/libusb.h>
8
9namespace co_usb
10{
11
30{
32
36 bool await_ready() noexcept;
37
47 std::coroutine_handle<> await_suspend(std::coroutine_handle<> h,
48 boost::capy::io_env const *env);
49
54 boost::capy::io_result<size_t> await_resume();
55
57 struct cb_data
58 {
59 boost::capy::io_env const *io_env = nullptr;
60 boost::capy::continuation cont;
62};
63
64static_assert(boost::capy::IoAwaitable<transfer_awaitable>);
65
66} // namespace co_usb
Definition context.hpp:14
use_service
Definition context.hpp:17
Definition transfer_awaitable.hpp:58
boost::capy::io_env const * io_env
Definition transfer_awaitable.hpp:59
boost::capy::continuation cont
Definition transfer_awaitable.hpp:60
Awaitable for submitting transfers.
Definition transfer_awaitable.hpp:30
std::coroutine_handle await_suspend(std::coroutine_handle<> h, boost::capy::io_env const *env)
suspends and submits the transfer
Definition transfer_awaitable.cpp:14
bool await_ready() noexcept
Definition transfer_awaitable.cpp:9
libusb_transfer * transfer
Definition transfer_awaitable.hpp:56
struct co_usb::transfer_awaitable::cb_data m_data
boost::capy::io_result< size_t > await_resume()
returns the result of a tranfer as an std::error_code and size of transfer's buffer contents after th...
Definition transfer_awaitable.cpp:40