| 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_adapter.h" | 5 #include "device/bluetooth/bluetooth_adapter.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 } | 358 } |
| 359 continue; | 359 continue; |
| 360 } | 360 } |
| 361 | 361 |
| 362 result = BluetoothDiscoveryFilter::Merge(result.get(), curr_filter); | 362 result = BluetoothDiscoveryFilter::Merge(result.get(), curr_filter); |
| 363 } | 363 } |
| 364 | 364 |
| 365 return result; | 365 return result; |
| 366 } | 366 } |
| 367 | 367 |
| 368 void BluetoothAdapter::RemoveTimedOutDevices() { |
| 369 for (DevicesMap::iterator it = devices_.begin(); it != devices_.end();) { |
| 370 BluetoothDevice* device = it->second; |
| 371 if (device->IsPaired() || device->IsConnected() || |
| 372 device->IsGattConnected()) { |
| 373 ++it; |
| 374 continue; |
| 375 } |
| 376 |
| 377 base::Time last_update_time = device->GetLastUpdateTime(); |
| 378 |
| 379 bool device_expired = |
| 380 (base::Time::NowFromSystemTime() - last_update_time) > timeoutSec; |
| 381 VLOG(1) << "device: " << device->GetAddress() |
| 382 << ", last_update: " << last_update_time |
| 383 << ", exp: " << device_expired; |
| 384 |
| 385 if (!device_expired) { |
| 386 ++it; |
| 387 continue; |
| 388 } |
| 389 DevicesMap::iterator next = it; |
| 390 next++; |
| 391 std::unique_ptr<BluetoothDevice> removed_device = |
| 392 devices_.take_and_erase(it); |
| 393 it = next; |
| 394 |
| 395 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
| 396 DeviceRemoved(this, removed_device.get())); |
| 397 } |
| 398 } |
| 399 |
| 368 // static | 400 // static |
| 369 void BluetoothAdapter::RecordBluetoothDiscoverySessionStartOutcome( | 401 void BluetoothAdapter::RecordBluetoothDiscoverySessionStartOutcome( |
| 370 UMABluetoothDiscoverySessionOutcome outcome) { | 402 UMABluetoothDiscoverySessionOutcome outcome) { |
| 371 UMA_HISTOGRAM_ENUMERATION( | 403 UMA_HISTOGRAM_ENUMERATION( |
| 372 "Bluetooth.DiscoverySession.Start.Outcome", static_cast<int>(outcome), | 404 "Bluetooth.DiscoverySession.Start.Outcome", static_cast<int>(outcome), |
| 373 static_cast<int>(UMABluetoothDiscoverySessionOutcome::COUNT)); | 405 static_cast<int>(UMABluetoothDiscoverySessionOutcome::COUNT)); |
| 374 } | 406 } |
| 375 | 407 |
| 376 // static | 408 // static |
| 377 void BluetoothAdapter::RecordBluetoothDiscoverySessionStopOutcome( | 409 void BluetoothAdapter::RecordBluetoothDiscoverySessionStopOutcome( |
| 378 UMABluetoothDiscoverySessionOutcome outcome) { | 410 UMABluetoothDiscoverySessionOutcome outcome) { |
| 379 UMA_HISTOGRAM_ENUMERATION( | 411 UMA_HISTOGRAM_ENUMERATION( |
| 380 "Bluetooth.DiscoverySession.Stop.Outcome", static_cast<int>(outcome), | 412 "Bluetooth.DiscoverySession.Stop.Outcome", static_cast<int>(outcome), |
| 381 static_cast<int>(UMABluetoothDiscoverySessionOutcome::COUNT)); | 413 static_cast<int>(UMABluetoothDiscoverySessionOutcome::COUNT)); |
| 382 } | 414 } |
| 383 | 415 |
| 416 // static |
| 417 const base::TimeDelta BluetoothAdapter::timeoutSec = |
| 418 base::TimeDelta::FromSeconds(180); |
| 419 |
| 384 } // namespace device | 420 } // namespace device |
| OLD | NEW |