template <size_t callback_size = sizeof(std::max_align_t)>
class CallbackRequest
Defined at line 390 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
A special Request type which can contain a callback lambda to be executed
upon completion of a USB request. The callback_size parameter represents the
size of the callback, and must be at least sizeof(std::max_align_t) bytes.
Public Methods
void CallbackRequest<callback_size> (usb_request_t * request, size_t parent_request_size)
Defined at line 398 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
void take ()
It is NOT safe to call take() on a CallbackRequest.
In order to ensure that each CallbackRequest is only
ever invoked once, we make it an error to call take().
Defined at line 403 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename Lambda>
zx_status_t Alloc (std::optional<CallbackRequest<callback_size>> *out,uint64_tdata_size,uint8_tendpoint,size_tparent_req_size,Lambdacallback)
Defined at line 405 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename ClientType>
void Queue (CallbackRequest<callback_size> request, ClientType & client)
Defined at line 416 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename ClientType, typename Lambda>
void Queue (CallbackRequest<callback_size>request,ClientType &client,Lambdacallback)
Defined at line 420 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
auto private_storage ()
Defined at line 423 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename ClientType>
void Queue (ClientType & function)
Defined at line 425 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename ClientType, typename Lambda>
void Queue (ClientType & function, Lambda callback)
Defined at line 434 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h