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

Unified Diff: device/bluetooth/bluetooth_remote_gatt_descriptor_chromeos.cc

Issue 309623002: device/bluetooth: Update GATT descriptor value D-Bus bindings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed clang error Created 6 years, 6 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
Index: device/bluetooth/bluetooth_remote_gatt_descriptor_chromeos.cc
diff --git a/device/bluetooth/bluetooth_remote_gatt_descriptor_chromeos.cc b/device/bluetooth/bluetooth_remote_gatt_descriptor_chromeos.cc
index 00271737cb1a97fc0052145d5d1a4359d3015a71..8978cc558121851e9f1fcd68be6b26200323c066 100644
--- a/device/bluetooth/bluetooth_remote_gatt_descriptor_chromeos.cc
+++ b/device/bluetooth/bluetooth_remote_gatt_descriptor_chromeos.cc
@@ -10,6 +10,7 @@
#include "chromeos/dbus/bluetooth_gatt_descriptor_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "device/bluetooth/bluetooth_remote_gatt_characteristic_chromeos.h"
+#include "device/bluetooth/bluetooth_remote_gatt_service_chromeos.h"
namespace chromeos {
@@ -59,11 +60,7 @@ bool BluetoothRemoteGattDescriptorChromeOS::IsLocal() const {
const std::vector<uint8>&
BluetoothRemoteGattDescriptorChromeOS::GetValue() const {
- BluetoothGattDescriptorClient::Properties* properties =
- DBusThreadManager::Get()->GetBluetoothGattDescriptorClient()->
- GetProperties(object_path_);
- DCHECK(properties);
- return properties->value.value();
+ return cached_value_;
}
device::BluetoothGattCharacteristic*
@@ -84,14 +81,15 @@ void BluetoothRemoteGattDescriptorChromeOS::ReadRemoteDescriptor(
VLOG(1) << "Sending GATT characteristic descriptor read request to "
<< "descriptor: " << GetIdentifier() << ", UUID: "
<< GetUUID().canonical_value();
- BluetoothGattDescriptorClient::Properties* properties =
- DBusThreadManager::Get()->GetBluetoothGattDescriptorClient()->
- GetProperties(object_path_);
- DCHECK(properties);
- properties->value.Get(
- base::Bind(&BluetoothRemoteGattDescriptorChromeOS::OnGetValue,
+
+ DBusThreadManager::Get()->GetBluetoothGattDescriptorClient()->ReadValue(
+ object_path_,
+ base::Bind(&BluetoothRemoteGattDescriptorChromeOS::OnValueSuccess,
+ weak_ptr_factory_.GetWeakPtr(),
+ callback),
+ base::Bind(&BluetoothRemoteGattDescriptorChromeOS::OnError,
weak_ptr_factory_.GetWeakPtr(),
- callback, error_callback));
+ error_callback));
}
void BluetoothRemoteGattDescriptorChromeOS::WriteRemoteDescriptor(
@@ -102,47 +100,38 @@ void BluetoothRemoteGattDescriptorChromeOS::WriteRemoteDescriptor(
<< "characteristic: " << GetIdentifier() << ", UUID: "
<< GetUUID().canonical_value() << ", with value: "
<< new_value << ".";
- BluetoothGattDescriptorClient::Properties* properties =
- DBusThreadManager::Get()->GetBluetoothGattDescriptorClient()->
- GetProperties(object_path_);
- DCHECK(properties);
- properties->value.Set(
+
+ DBusThreadManager::Get()->GetBluetoothGattDescriptorClient()->WriteValue(
+ object_path_,
new_value,
- base::Bind(&BluetoothRemoteGattDescriptorChromeOS::OnSetValue,
+ callback,
+ base::Bind(&BluetoothRemoteGattDescriptorChromeOS::OnError,
weak_ptr_factory_.GetWeakPtr(),
- callback, error_callback));
+ error_callback));
}
-void BluetoothRemoteGattDescriptorChromeOS::OnGetValue(
+void BluetoothRemoteGattDescriptorChromeOS::OnValueSuccess(
const ValueCallback& callback,
- const ErrorCallback& error_callback,
- bool success) {
- if (!success) {
- VLOG(1) << "Failed to read the value from the remote descriptor.";
- error_callback.Run();
- return;
- }
-
- VLOG(1) << "Read value of remote descriptor.";
- BluetoothGattDescriptorClient::Properties* properties =
- DBusThreadManager::Get()->GetBluetoothGattDescriptorClient()->
- GetProperties(object_path_);
- DCHECK(properties);
- callback.Run(properties->value.value());
+ const std::vector<uint8>& value) {
+ VLOG(1) << "Descriptor value read: " << value;
+ cached_value_ = value;
+
+ DCHECK(characteristic_);
+ BluetoothRemoteGattServiceChromeOS* service =
+ static_cast<BluetoothRemoteGattServiceChromeOS*>(
+ characteristic_->GetService());
+ DCHECK(service);
+ service->NotifyDescriptorValueChanged(characteristic_, this, value);
+ callback.Run(value);
}
-void BluetoothRemoteGattDescriptorChromeOS::OnSetValue(
- const base::Closure& callback,
+void BluetoothRemoteGattDescriptorChromeOS::OnError(
const ErrorCallback& error_callback,
- bool success) {
- if (!success) {
- VLOG(1) << "Failed to write the value of remote descriptor.";
- error_callback.Run();
- return;
- }
-
- VLOG(1) << "Wrote value of remote descriptor.";
- callback.Run();
+ const std::string& error_name,
+ const std::string& error_message) {
+ VLOG(1) << "Operation failed: " << error_name
+ << ", message: " << error_message;
+ error_callback.Run();
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698