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