class axl::io::UsbTransfer

#include <axl_io_UsbTransfer.h>

class UsbTransfer: public axl::sl::Handle
{
public:
    // methods

    bool
    create(size_t isochronousPacketCount = 0);

    bool
    submit();

    bool
    cancel();

    void
    fillControlTransfer(
        libusb_device_handle* deviceOpenHandle,
        libusb_control_setup* setup,
        libusb_transfer_cb_fn callback,
        void* context,
        uint_t timeout = -1
        );

    void
    fillBulkTransfer(
        libusb_device_handle* deviceOpenHandle,
        uint_t endpointId,
        void* buffer,
        size_t size,
        libusb_transfer_cb_fn callback,
        void* context,
        uint_t timeout = -1
        );

    void
    fillInterruptTransfer(
        libusb_device_handle* deviceOpenHandle,
        uint_t endpointId,
        void* buffer,
        size_t size,
        libusb_transfer_cb_fn callback,
        void* context,
        uint_t timeout = -1
        );

    static
    void
    fillControlSetup(
        libusb_control_setup* setup,
        uint_t requestType,
        uint_t requestCode,
        uint_t value,
        uint_t index,
        size_t size
        );
};

Inherited Members

public:
    // typedefs

    typedef T H;

    // methods

    operator T() const;

    T
    operator->() const;

    const Handle&
    operator=(T h);

    bool
    isOpen() const;

    void
    close();

    void
    attach(T h);

    T
    detach();

    T*
    p();

    static
    T
    getInvalidHandle();