UHD  003.005.003-781-g91040b6f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
Public Types | Static Public Member Functions
uhd::transport::usb_zero_copy Class Reference

#include <usb_zero_copy.hpp>

Inheritance diagram for uhd::transport::usb_zero_copy:
uhd::transport::zero_copy_if

List of all members.

Public Types

typedef boost::shared_ptr
< usb_zero_copy
sptr

Static Public Member Functions

static sptr make (usb_device_handle::sptr handle, const size_t recv_interface, const size_t recv_endpoint, const size_t send_interface, const size_t send_endpoint, const device_addr_t &hints=device_addr_t())

Detailed Description

A zero copy usb transport provides an efficient way to handle data. by avoiding the extra copy when recv() or send() is called on the handle. Rather, the zero copy transport gives the caller memory references. The caller informs the transport when it is finished with the reference.

On linux systems, the zero copy transport can use a kernel packet ring. If no platform specific solution is available, make returns a boost asio implementation that wraps functionality around standard send/recv calls.


Member Typedef Documentation

Reimplemented from uhd::transport::zero_copy_if.


Member Function Documentation

static sptr uhd::transport::usb_zero_copy::make ( usb_device_handle::sptr  handle,
const size_t  recv_interface,
const size_t  recv_endpoint,
const size_t  send_interface,
const size_t  send_endpoint,
const device_addr_t hints = device_addr_t() 
) [static]

Make a new zero copy usb transport: This transport is for sending and receiving between the host and a pair of USB bulk transfer endpoints. The primary usage for this transport is data transactions. The underlying implementation may be platform specific.

Parameters:
handlea device handle that uniquely identifying the device
recv_interfacean integer specifiying an IN interface number
recv_endpointan integer specifiying an IN endpoint number
send_interfacean integer specifiying an OUT interface number
send_endpointan integer specifiying an OUT endpoint number
hintsoptional parameters to pass to the underlying transport
Returns:
a new zero copy usb object

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines