OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "device/bluetooth/bluetooth_device.h" | 5 #include "device/bluetooth/bluetooth_device.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
12 #include "base/stl_util.h" | |
13 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
14 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
15 #include "base/time/time.h" | 14 #include "base/time/time.h" |
16 #include "base/values.h" | 15 #include "base/values.h" |
17 #include "device/bluetooth/bluetooth_adapter.h" | 16 #include "device/bluetooth/bluetooth_adapter.h" |
18 #include "device/bluetooth/bluetooth_gatt_connection.h" | 17 #include "device/bluetooth/bluetooth_gatt_connection.h" |
19 #include "device/bluetooth/bluetooth_remote_gatt_service.h" | 18 #include "device/bluetooth/bluetooth_remote_gatt_service.h" |
20 #include "device/bluetooth/string_util_icu.h" | 19 #include "device/bluetooth/string_util_icu.h" |
21 #include "grit/bluetooth_strings.h" | 20 #include "grit/bluetooth_strings.h" |
22 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.h" |
23 | 22 |
24 namespace device { | 23 namespace device { |
25 | 24 |
26 BluetoothDevice::DeviceUUIDs::DeviceUUIDs() {} | 25 BluetoothDevice::DeviceUUIDs::DeviceUUIDs() = default; |
27 | 26 |
28 BluetoothDevice::DeviceUUIDs::~DeviceUUIDs() {} | 27 BluetoothDevice::DeviceUUIDs::~DeviceUUIDs() = default; |
| 28 |
| 29 BluetoothDevice::DeviceUUIDs::DeviceUUIDs(const DeviceUUIDs& other) = default; |
| 30 |
| 31 BluetoothDevice::DeviceUUIDs& BluetoothDevice::DeviceUUIDs::operator=( |
| 32 const DeviceUUIDs& other) = default; |
29 | 33 |
30 void BluetoothDevice::DeviceUUIDs::ReplaceAdvertisedUUIDs( | 34 void BluetoothDevice::DeviceUUIDs::ReplaceAdvertisedUUIDs( |
31 UUIDList new_advertised_uuids) { | 35 UUIDList new_advertised_uuids) { |
32 advertised_uuids_.clear(); | 36 advertised_uuids_.clear(); |
33 for (auto& it : new_advertised_uuids) { | 37 for (auto& it : new_advertised_uuids) { |
34 advertised_uuids_.insert(std::move(it)); | 38 advertised_uuids_.insert(std::move(it)); |
35 } | 39 } |
36 UpdateDeviceUUIDs(); | 40 UpdateDeviceUUIDs(); |
37 } | 41 } |
38 | 42 |
39 void BluetoothDevice::DeviceUUIDs::ClearAdvertisedUUIDs() { | 43 void BluetoothDevice::DeviceUUIDs::ClearAdvertisedUUIDs() { |
40 advertised_uuids_.clear(); | 44 advertised_uuids_.clear(); |
41 UpdateDeviceUUIDs(); | 45 UpdateDeviceUUIDs(); |
42 } | 46 } |
43 | 47 |
44 void BluetoothDevice::DeviceUUIDs::ReplaceServiceUUIDs( | 48 void BluetoothDevice::DeviceUUIDs::ReplaceServiceUUIDs( |
45 const GattServiceMap& gatt_services) { | 49 const GattServiceMap& gatt_services) { |
46 service_uuids_.clear(); | 50 service_uuids_.clear(); |
47 for (const auto& gatt_service_pair : gatt_services) { | 51 for (const auto& gatt_service_pair : gatt_services) |
48 service_uuids_.insert(gatt_service_pair.second->GetUUID()); | 52 service_uuids_.insert(gatt_service_pair.second->GetUUID()); |
49 } | |
50 UpdateDeviceUUIDs(); | 53 UpdateDeviceUUIDs(); |
51 } | 54 } |
52 | 55 |
53 void BluetoothDevice::DeviceUUIDs::ClearServiceUUIDs() { | 56 void BluetoothDevice::DeviceUUIDs::ClearServiceUUIDs() { |
54 service_uuids_.clear(); | 57 service_uuids_.clear(); |
55 UpdateDeviceUUIDs(); | 58 UpdateDeviceUUIDs(); |
56 } | 59 } |
57 | 60 |
58 const BluetoothDevice::UUIDSet& BluetoothDevice::DeviceUUIDs::GetUUIDs() const { | 61 const BluetoothDevice::UUIDSet& BluetoothDevice::DeviceUUIDs::GetUUIDs() const { |
59 return device_uuids_; | 62 return device_uuids_; |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 } | 367 } |
365 | 368 |
366 bool BluetoothDevice::IsGattServicesDiscoveryComplete() const { | 369 bool BluetoothDevice::IsGattServicesDiscoveryComplete() const { |
367 return gatt_services_discovery_complete_; | 370 return gatt_services_discovery_complete_; |
368 } | 371 } |
369 | 372 |
370 std::vector<BluetoothRemoteGattService*> BluetoothDevice::GetGattServices() | 373 std::vector<BluetoothRemoteGattService*> BluetoothDevice::GetGattServices() |
371 const { | 374 const { |
372 std::vector<BluetoothRemoteGattService*> services; | 375 std::vector<BluetoothRemoteGattService*> services; |
373 for (const auto& iter : gatt_services_) | 376 for (const auto& iter : gatt_services_) |
374 services.push_back(iter.second); | 377 services.push_back(iter.second.get()); |
375 return services; | 378 return services; |
376 } | 379 } |
377 | 380 |
378 BluetoothRemoteGattService* BluetoothDevice::GetGattService( | 381 BluetoothRemoteGattService* BluetoothDevice::GetGattService( |
379 const std::string& identifier) const { | 382 const std::string& identifier) const { |
380 return gatt_services_.get(identifier); | 383 auto it = gatt_services_.find(identifier); |
| 384 if (it == gatt_services_.end()) |
| 385 return nullptr; |
| 386 return it->second.get(); |
381 } | 387 } |
382 | 388 |
383 // static | 389 // static |
384 std::string BluetoothDevice::CanonicalizeAddress(const std::string& address) { | 390 std::string BluetoothDevice::CanonicalizeAddress(const std::string& address) { |
385 std::string canonicalized = address; | 391 std::string canonicalized = address; |
386 if (address.size() == 12) { | 392 if (address.size() == 12) { |
387 // Might be an address in the format "1A2B3C4D5E6F". Add separators. | 393 // Might be an address in the format "1A2B3C4D5E6F". Add separators. |
388 for (size_t i = 2; i < canonicalized.size(); i += 3) { | 394 for (size_t i = 2; i < canonicalized.size(); i += 3) { |
389 canonicalized.insert(i, ":"); | 395 canonicalized.insert(i, ":"); |
390 } | 396 } |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 if (power < INT8_MIN) { | 521 if (power < INT8_MIN) { |
516 return INT8_MIN; | 522 return INT8_MIN; |
517 } | 523 } |
518 if (power > INT8_MAX) { | 524 if (power > INT8_MAX) { |
519 return INT8_MAX; | 525 return INT8_MAX; |
520 } | 526 } |
521 return static_cast<int8_t>(power); | 527 return static_cast<int8_t>(power); |
522 } | 528 } |
523 | 529 |
524 } // namespace device | 530 } // namespace device |
OLD | NEW |