 Chromium Code Reviews
 Chromium Code Reviews Issue 825523003:
  Convert HidDeviceInfo from a struct to a refcounted class.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 825523003:
  Convert HidDeviceInfo from a struct to a refcounted class.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: device/hid/hid_device_info.h | 
| diff --git a/device/hid/hid_device_info.h b/device/hid/hid_device_info.h | 
| index 917a12951484fa5471f5a9b038bdbc5eeae35500..4614bf9ad76db41becb941e1dda008fede3fa8fd 100644 | 
| --- a/device/hid/hid_device_info.h | 
| +++ b/device/hid/hid_device_info.h | 
| @@ -8,6 +8,7 @@ | 
| #include <string> | 
| #include <vector> | 
| +#include "base/memory/ref_counted.h" | 
| #include "build/build_config.h" | 
| #include "device/hid/hid_collection_info.h" | 
| @@ -21,28 +22,60 @@ enum HidBusType { | 
| typedef std::string HidDeviceId; | 
| extern const char kInvalidHidDeviceId[]; | 
| -struct HidDeviceInfo { | 
| +class HidDeviceInfo : public base::RefCountedThreadSafe<HidDeviceInfo> { | 
| + public: | 
| HidDeviceInfo(); | 
| + | 
| + // Device identification. | 
| + const HidDeviceId& device_id() const { return device_id_; } | 
| + uint16_t vendor_id() const { return vendor_id_; } | 
| + uint16_t product_id() const { return product_id_; } | 
| + const std::string& product_name() const { return product_name_; } | 
| + const std::string& serial_number() const { return serial_number_; } | 
| + HidBusType bus_type() const { return bus_type_; } | 
| + | 
| + // Top-Level Collections information. | 
| + const std::vector<HidCollectionInfo>& collections() const { | 
| + return collections_; | 
| + } | 
| + bool has_report_id() const { return has_report_id_; }; | 
| + size_t max_input_report_size() const { return max_input_report_size_; } | 
| + size_t max_output_report_size() const { return max_output_report_size_; } | 
| + size_t max_feature_report_size() const { return max_feature_report_size_; } | 
| + | 
| +#if defined(OS_LINUX) | 
| + const std::string& device_node() const { return device_node_; } | 
| +#endif | 
| + | 
| + private: | 
| + friend class base::RefCountedThreadSafe<HidDeviceInfo>; | 
| + friend class HidServiceLinux; | 
| + friend class HidServiceMac; | 
| 
Ken Rockot(use gerrit already)
2015/01/08 20:26:16
Could you please add a TODO which documents the in
 | 
| + friend class HidServiceWin; | 
| + friend class MockHidService; | 
| + friend class HidFilterTest; | 
| ~HidDeviceInfo(); | 
| // Device identification. | 
| - HidDeviceId device_id; | 
| - uint16_t vendor_id; | 
| - uint16_t product_id; | 
| - std::string product_name; | 
| - std::string serial_number; | 
| - HidBusType bus_type; | 
| + HidDeviceId device_id_; | 
| + uint16_t vendor_id_; | 
| + uint16_t product_id_; | 
| + std::string product_name_; | 
| + std::string serial_number_; | 
| + HidBusType bus_type_; | 
| // Top-Level Collections information. | 
| - std::vector<HidCollectionInfo> collections; | 
| - bool has_report_id; | 
| - size_t max_input_report_size; | 
| - size_t max_output_report_size; | 
| - size_t max_feature_report_size; | 
| + std::vector<HidCollectionInfo> collections_; | 
| + bool has_report_id_; | 
| + size_t max_input_report_size_; | 
| + size_t max_output_report_size_; | 
| + size_t max_feature_report_size_; | 
| #if defined(OS_LINUX) | 
| - std::string device_node; | 
| + std::string device_node_; | 
| #endif | 
| + | 
| + DISALLOW_COPY_AND_ASSIGN(HidDeviceInfo); | 
| }; | 
| } // namespace device |