template <size_t callback_size = sizeof(std::max_align_t)>
class CallbackRequest
Defined at line 386 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 394 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 399 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_t data_size, uint8_t endpoint, size_t parent_req_size, Lambda callback)
Defined at line 401 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 412 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, Lambda callback)
Defined at line 416 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
auto private_storage ()
Defined at line 419 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename ClientType>
void Queue (ClientType & function)
Defined at line 421 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 430 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h