co_usb
Loading...
Searching...
No Matches
co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy > Struct Template Reference

#include <sequence_awaitable.hpp>

Collaboration diagram for co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >:

Classes

struct  await_state_t
 

Public Types

using tfer_iter_t = sequence_view< TSeq >::iterator_type
 
using buf_iter_t = decltype(boost::capy::begin(std::declval< BuffersTy const & >()))
 
using buffer_t = boost::capy::buffer_type< BuffersTy >
 

Public Member Functions

 sequence_awaitable (await_state_t *await_state, sequence_view< TSeq > *seq_view, BuffersTy const &buffers, size_t submission_size)
 
bool await_ready ()
 
std::coroutine_handle await_suspend (std::coroutine_handle<> h, boost::capy::io_env const *io_env)
 
boost::capy::io_result< size_t > await_resume ()
 

Static Public Member Functions

static void transfer_callback (libusb_transfer *tfer) noexcept
 

Public Attributes

await_state_tawait_state
 
sequence_view< TSeq > * view
 
buf_iter_t buf_current
 
buf_iter_t buf_end
 
size_t submission_size {0}
 

Member Typedef Documentation

◆ buf_iter_t

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
using co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::buf_iter_t = decltype(boost::capy::begin(std::declval<BuffersTy const &>()))

◆ buffer_t

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
using co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::buffer_t = boost::capy::buffer_type<BuffersTy>

◆ tfer_iter_t

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
using co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::tfer_iter_t = sequence_view<TSeq>::iterator_type

Constructor & Destructor Documentation

◆ sequence_awaitable()

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::sequence_awaitable ( await_state_t await_state,
sequence_view< TSeq > *  seq_view,
BuffersTy const &  buffers,
size_t  submission_size 
)
inlineexplicit

Member Function Documentation

◆ await_ready()

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
bool co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::await_ready ( )
inline

◆ await_resume()

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
boost::capy::io_result< size_t > co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::await_resume ( )
inline

◆ await_suspend()

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
std::coroutine_handle co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::await_suspend ( std::coroutine_handle<>  h,
boost::capy::io_env const *  io_env 
)
inline

◆ transfer_callback()

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
static void co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::transfer_callback ( libusb_transfer *  tfer)
inlinestaticnoexcept

Member Data Documentation

◆ await_state

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
await_state_t* co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::await_state

◆ buf_current

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
buf_iter_t co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::buf_current

◆ buf_end

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
buf_iter_t co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::buf_end

◆ submission_size

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
size_t co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::submission_size {0}

◆ view

template<detail::TransferSequence TSeq, AnyBufferSequence BuffersTy>
sequence_view<TSeq>* co_usb::transfer::detail::sequence_awaitable< TSeq, BuffersTy >::view

The documentation for this struct was generated from the following file: