| Index: device/hid/hid_service.cc
|
| diff --git a/device/hid/hid_service.cc b/device/hid/hid_service.cc
|
| index 4953f256c87eafc1f0f482f1516a617f46d57537..c0b176ea0f719d84beb525abff071b8e21e2bcb0 100644
|
| --- a/device/hid/hid_service.cc
|
| +++ b/device/hid/hid_service.cc
|
| @@ -25,6 +25,14 @@ namespace {
|
| HidService* g_service;
|
| }
|
|
|
| +void HidService::Observer::OnDeviceAdded(
|
| + scoped_refptr<HidDeviceInfo> device_info) {
|
| +}
|
| +
|
| +void HidService::Observer::OnDeviceRemoved(
|
| + scoped_refptr<HidDeviceInfo> device_info) {
|
| +}
|
| +
|
| HidService* HidService::GetInstance(
|
| scoped_refptr<base::SingleThreadTaskRunner> file_task_runner) {
|
| if (g_service == NULL) {
|
| @@ -53,7 +61,7 @@ void HidService::SetInstanceForTest(HidService* instance) {
|
| void HidService::GetDevices(const GetDevicesCallback& callback) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (enumeration_ready_) {
|
| - std::vector<HidDeviceInfo> devices;
|
| + std::vector<scoped_refptr<HidDeviceInfo>> devices;
|
| for (const auto& map_entry : devices_) {
|
| devices.push_back(map_entry.second);
|
| }
|
| @@ -73,14 +81,14 @@ void HidService::RemoveObserver(HidService::Observer* observer) {
|
| }
|
|
|
| // Fills in the device info struct of the given device_id.
|
| -bool HidService::GetDeviceInfo(const HidDeviceId& device_id,
|
| - HidDeviceInfo* info) const {
|
| +scoped_refptr<HidDeviceInfo> HidService::GetDeviceInfo(
|
| + const HidDeviceId& device_id) const {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DeviceMap::const_iterator it = devices_.find(device_id);
|
| - if (it == devices_.end())
|
| - return false;
|
| - *info = it->second;
|
| - return true;
|
| + if (it == devices_.end()) {
|
| + return nullptr;
|
| + }
|
| + return it->second;
|
| }
|
|
|
| HidService::HidService() : enumeration_ready_(false) {
|
| @@ -90,13 +98,13 @@ HidService::~HidService() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| }
|
|
|
| -void HidService::AddDevice(const HidDeviceInfo& info) {
|
| +void HidService::AddDevice(scoped_refptr<HidDeviceInfo> device_info) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - if (!ContainsKey(devices_, info.device_id)) {
|
| - devices_[info.device_id] = info;
|
| + if (!ContainsKey(devices_, device_info->device_id())) {
|
| + devices_[device_info->device_id()] = device_info;
|
|
|
| if (enumeration_ready_) {
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnDeviceAdded(info));
|
| + FOR_EACH_OBSERVER(Observer, observer_list_, OnDeviceAdded(device_info));
|
| }
|
| }
|
| }
|
| @@ -116,7 +124,7 @@ void HidService::FirstEnumerationComplete() {
|
| enumeration_ready_ = true;
|
|
|
| if (!pending_enumerations_.empty()) {
|
| - std::vector<HidDeviceInfo> devices;
|
| + std::vector<scoped_refptr<HidDeviceInfo>> devices;
|
| for (const auto& map_entry : devices_) {
|
| devices.push_back(map_entry.second);
|
| }
|
|
|