17 namespace uhd { 
namespace transport {
 
   34     typedef std::shared_ptr<usb_device_handle> 
sptr;
 
   43     virtual std::string get_serial() 
const = 0;
 
   49     virtual std::string get_manufacturer() 
const = 0;
 
   55     virtual std::string get_product() 
const = 0;
 
   61     virtual uint16_t get_vendor_id() 
const = 0;
 
   67     virtual uint16_t get_product_id() 
const = 0;
 
   73     virtual bool firmware_loaded() = 0;
 
   79     static std::vector<usb_device_handle::sptr> get_device_list(
 
   80         uint16_t vid, uint16_t pid);
 
   81     static std::vector<usb_device_handle::sptr> get_device_list(
 
   82         const std::vector<usb_device_handle::vid_pid_pair_t>& vid_pid_pair_list);