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

Unified Diff: device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.cc

Issue 1915803002: Bluetooth class changes for implementing local GATT attributes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
Index: device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.cc
diff --git a/device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.cc b/device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.cc
index 267b04713e9daabd73653ff0815f1d5dc30f8cdf..5f79c2b9c7a2eb6bfc5bbf207908069944768b2c 100644
--- a/device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.cc
+++ b/device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.cc
@@ -2,9 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.h"
+#include <device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.h>
-#include "base/callback.h"
#include "base/guid.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
@@ -12,8 +11,39 @@
#include "dbus/object_path.h"
#include "device/bluetooth/bluez/bluetooth_adapter_bluez.h"
+namespace device {
+
+// static
+base::WeakPtr<BluetoothLocalGattService> BluetoothLocalGattService::Create(
+ BluetoothAdapter* adapter,
+ const BluetoothUUID& uuid,
+ bool is_primary,
+ BluetoothLocalGattService* included_service,
+ BluetoothLocalGattService::Delegate* delegate) {
+ return bluez::BluetoothLocalGattServiceBlueZ::Create(
+ adapter, uuid, is_primary, included_service, delegate);
+}
+
+} // device
+
namespace bluez {
+// static
+base::WeakPtr<device::BluetoothLocalGattService>
+BluetoothLocalGattServiceBlueZ::Create(
+ device::BluetoothAdapter* adapter,
+ const device::BluetoothUUID& uuid,
+ bool is_primary,
+ BluetoothLocalGattService* /* included_service */,
+ BluetoothLocalGattService::Delegate* delegate) {
+ BluetoothAdapterBlueZ* adapter_bluez =
+ static_cast<BluetoothAdapterBlueZ*>(adapter);
+ BluetoothLocalGattServiceBlueZ* service = new BluetoothLocalGattServiceBlueZ(
+ adapter_bluez, uuid, is_primary, delegate);
+ adapter_bluez->AddLocalGattService(base::WrapUnique(service));
+ return service->weak_ptr_factory_.GetWeakPtr();
+}
+
BluetoothLocalGattServiceBlueZ::BluetoothLocalGattServiceBlueZ(
BluetoothAdapterBlueZ* adapter,
const device::BluetoothUUID& uuid,
@@ -24,12 +54,8 @@ BluetoothLocalGattServiceBlueZ::BluetoothLocalGattServiceBlueZ(
is_primary_(is_primary),
delegate_(delegate),
weak_ptr_factory_(this) {
- // TODO(rkc): Move this code in a common location. It is used by
- // BluetoothAdvertisementBlueZ() also.
- std::string GuidString = base::GenerateGUID();
- base::RemoveChars(GuidString, "-", &GuidString);
- object_path_ = dbus::ObjectPath(adapter_->object_path().value() +
- "/service/" + GuidString);
+ // TODO(rkc): Get base application path from adapter and prefix it here.
scheib 2016/04/28 01:06:24 Use issue numbers for TODOs.
rkc 2016/04/28 02:06:58 This is just a remnant of the split to make the co
scheib 2016/04/28 04:34:07 OK, leave it for now but I'd suggest TODO(crrev.co
rkc 2016/04/28 05:07:23 Acknowledged.
+ object_path_ = AddGuidToObjectPath("/service");
VLOG(1) << "Creating local GATT service with identifier: "
<< object_path_.value();
}
@@ -44,42 +70,36 @@ bool BluetoothLocalGattServiceBlueZ::IsPrimary() const {
return is_primary_;
}
-// static
-base::WeakPtr<device::BluetoothLocalGattService>
-BluetoothLocalGattServiceBlueZ::Create(
- device::BluetoothAdapter* adapter,
- const device::BluetoothUUID& uuid,
- bool is_primary,
- BluetoothLocalGattService* /* included_service */,
- BluetoothLocalGattService::Delegate* delegate) {
- BluetoothAdapterBlueZ* adapter_bluez =
- static_cast<BluetoothAdapterBlueZ*>(adapter);
- BluetoothLocalGattServiceBlueZ* service = new BluetoothLocalGattServiceBlueZ(
- adapter_bluez, uuid, is_primary, delegate);
- adapter_bluez->AddLocalGattService(base::WrapUnique(service));
- return service->weak_ptr_factory_.GetWeakPtr();
-}
-
void BluetoothLocalGattServiceBlueZ::Register(
const base::Closure& callback,
const ErrorCallback& error_callback) {
- // TODO(rkc): Call adapter_->RegisterGattService.
+ // GetAdapter()->RegisterGattService(this, callback, error_callback);
}
void BluetoothLocalGattServiceBlueZ::Unregister(
const base::Closure& callback,
const ErrorCallback& error_callback) {
- // TODO(rkc): Call adapter_->UnregisterGattService.
+ DCHECK(GetAdapter());
+ // GetAdapter()->UnregisterGattService(this, callback, error_callback);
+}
+
+const std::vector<std::unique_ptr<BluetoothLocalGattCharacteristicBlueZ>>&
+BluetoothLocalGattServiceBlueZ::GetCharacteristics() const {
+ return characteristics_;
+}
+
+// static
+dbus::ObjectPath BluetoothLocalGattServiceBlueZ::AddGuidToObjectPath(
+ const std::string& path) {
+ std::string GuidString = base::GenerateGUID();
+ base::RemoveChars(GuidString, "-", &GuidString);
+
+ return dbus::ObjectPath(path + GuidString);
}
-void BluetoothLocalGattServiceBlueZ::OnRegistrationError(
- const ErrorCallback& error_callback,
- const std::string& error_name,
- const std::string& error_message) {
- VLOG(1) << "[Un]Register Service failed: " << error_name
- << ", message: " << error_message;
- error_callback.Run(
- BluetoothGattServiceBlueZ::DBusErrorToServiceError(error_name));
+void BluetoothLocalGattServiceBlueZ::AddCharacteristic(
+ std::unique_ptr<BluetoothLocalGattCharacteristicBlueZ> characteristic) {
+ characteristics_.push_back(std::move(characteristic));
}
} // namespace bluez

Powered by Google App Engine
This is Rietveld 408576698