Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3402)

Unified Diff: device/hid/hid_device_info.h

Issue 825523003: Convert HidDeviceInfo from a struct to a refcounted class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added TODO to remove friend class definitions. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/hid/hid_device_filter_unittest.cc ('k') | device/hid/hid_device_info.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « device/hid/hid_device_filter_unittest.cc ('k') | device/hid/hid_device_info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698