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 |