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

Unified Diff: chromeos/dbus/fake_bluetooth_gatt_service_client.cc

Issue 228643004: device/bluetooth: Add chromeos::BluetoothRemoteGattCharacteristicChromeOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed potentially flaky expectation from unit test. Created 6 years, 8 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 | « chromeos/dbus/fake_bluetooth_gatt_service_client.h ('k') | device/bluetooth/bluetooth.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/dbus/fake_bluetooth_gatt_service_client.cc
diff --git a/chromeos/dbus/fake_bluetooth_gatt_service_client.cc b/chromeos/dbus/fake_bluetooth_gatt_service_client.cc
index 506ee05a0ebe7393a763975e93796fae67214def..ae2b0b4a61230a82fce6f4f2ed4651bde427eab0 100644
--- a/chromeos/dbus/fake_bluetooth_gatt_service_client.cc
+++ b/chromeos/dbus/fake_bluetooth_gatt_service_client.cc
@@ -5,12 +5,20 @@
#include "chromeos/dbus/fake_bluetooth_gatt_service_client.h"
#include "base/bind.h"
+#include "base/message_loop/message_loop.h"
+#include "base/time/time.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/fake_bluetooth_gatt_characteristic_client.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
+namespace {
+
+const int kExposeCharacteristicsDelayIntervalMs = 100;
+
+} // namespace
+
// static
const char FakeBluetoothGattServiceClient::kHeartRateServicePathComponent[] =
"service0000";
@@ -46,7 +54,8 @@ void FakeBluetoothGattServiceClient::Properties::Set(
callback.Run(false);
}
-FakeBluetoothGattServiceClient::FakeBluetoothGattServiceClient() {
+FakeBluetoothGattServiceClient::FakeBluetoothGattServiceClient()
+ : weak_ptr_factory_(this) {
}
FakeBluetoothGattServiceClient::~FakeBluetoothGattServiceClient() {
@@ -82,7 +91,7 @@ FakeBluetoothGattServiceClient::GetProperties(
void FakeBluetoothGattServiceClient::ExposeHeartRateService(
const dbus::ObjectPath& device_path) {
- if (heart_rate_service_properties_.get()) {
+ if (IsHeartRateVisible()) {
DCHECK(!heart_rate_service_path_.empty());
VLOG(1) << "Fake Heart Rate Service already exposed.";
return;
@@ -100,15 +109,17 @@ void FakeBluetoothGattServiceClient::ExposeHeartRateService(
NotifyServiceAdded(dbus::ObjectPath(heart_rate_service_path_));
- FakeBluetoothGattCharacteristicClient* char_client =
- static_cast<FakeBluetoothGattCharacteristicClient*>(
- DBusThreadManager::Get()->GetBluetoothGattCharacteristicClient());
- char_client->ExposeHeartRateCharacteristics(
- dbus::ObjectPath(heart_rate_service_path_));
+ base::MessageLoop::current()->PostDelayedTask(
+ FROM_HERE,
+ base::Bind(
+ &FakeBluetoothGattServiceClient::ExposeHeartRateCharacteristics,
+ weak_ptr_factory_.GetWeakPtr()),
+ base::TimeDelta::FromMilliseconds(
+ kExposeCharacteristicsDelayIntervalMs));
}
void FakeBluetoothGattServiceClient::HideHeartRateService() {
- if (!heart_rate_service_properties_.get()) {
+ if (!IsHeartRateVisible()) {
DCHECK(heart_rate_service_path_.empty());
VLOG(1) << "Fake Heart Rate Service already hidden.";
return;
@@ -127,6 +138,15 @@ void FakeBluetoothGattServiceClient::HideHeartRateService() {
heart_rate_service_path_.clear();
}
+bool FakeBluetoothGattServiceClient::IsHeartRateVisible() const {
+ return !!heart_rate_service_properties_.get();
+}
+
+dbus::ObjectPath
+FakeBluetoothGattServiceClient::GetHeartRateServicePath() const {
+ return dbus::ObjectPath(heart_rate_service_path_);
+}
+
void FakeBluetoothGattServiceClient::OnPropertyChanged(
const dbus::ObjectPath& object_path,
const std::string& property_name) {
@@ -152,4 +172,16 @@ void FakeBluetoothGattServiceClient::NotifyServiceRemoved(
GattServiceRemoved(object_path));
}
+void FakeBluetoothGattServiceClient::ExposeHeartRateCharacteristics() {
+ if (!IsHeartRateVisible()) {
+ VLOG(2) << "Heart Rate service not visible. Not exposing characteristics.";
+ return;
+ }
+ FakeBluetoothGattCharacteristicClient* char_client =
+ static_cast<FakeBluetoothGattCharacteristicClient*>(
+ DBusThreadManager::Get()->GetBluetoothGattCharacteristicClient());
+ char_client->ExposeHeartRateCharacteristics(
+ dbus::ObjectPath(heart_rate_service_path_));
+}
+
} // namespace chromeos
« no previous file with comments | « chromeos/dbus/fake_bluetooth_gatt_service_client.h ('k') | device/bluetooth/bluetooth.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698