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..7aae955a151e3c3f1d4a0419f345073098dac39e 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,64 @@ 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>; |
+ |
+ // TODO(reillyg): Define public constructors that make some of these |
+ // declarations unnecessary. |
+ friend class HidServiceLinux; |
+ friend class HidServiceMac; |
+ 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 |