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

Unified Diff: chromeos/dbus/fake_bluetooth_gatt_service_client.cc

Issue 206443009: chromeos/dbus: Add fake D-Bus clients for GATT client-mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 9 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') | chromeos/dbus/fake_dbus_thread_manager.h » ('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
new file mode 100644
index 0000000000000000000000000000000000000000..d579a2631fbd008a563a96529be4e3426fd73fef
--- /dev/null
+++ b/chromeos/dbus/fake_bluetooth_gatt_service_client.cc
@@ -0,0 +1,152 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/dbus/fake_bluetooth_gatt_service_client.h"
+
+#include "base/bind.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 {
+
+// static
+const char FakeBluetoothGattServiceClient::kHeartRateServicePathComponent[] =
+ "service0000";
+const char FakeBluetoothGattServiceClient::kHeartRateServiceUUID[] =
+ "0000180d-0000-1000-8000-00805f9b34fb";
+
+FakeBluetoothGattServiceClient::Properties::Properties(
+ const PropertyChangedCallback& callback)
+ : BluetoothGattServiceClient::Properties(
+ NULL,
+ bluetooth_gatt_service::kBluetoothGattServiceInterface,
+ callback) {
+}
+
+FakeBluetoothGattServiceClient::Properties::~Properties() {
+}
+
+void FakeBluetoothGattServiceClient::Properties::Get(
+ dbus::PropertyBase* property,
+ dbus::PropertySet::GetCallback callback) {
+ VLOG(1) << "Get " << property->name();
+ callback.Run(false);
+}
+
+void FakeBluetoothGattServiceClient::Properties::GetAll() {
+ VLOG(1) << "GetAll";
+}
+
+void FakeBluetoothGattServiceClient::Properties::Set(
+ dbus::PropertyBase* property,
+ dbus::PropertySet::GetCallback callback) {
+ VLOG(1) << "Set " << property->name();
+ callback.Run(false);
+}
+
+FakeBluetoothGattServiceClient::FakeBluetoothGattServiceClient() {
+}
+
+FakeBluetoothGattServiceClient::~FakeBluetoothGattServiceClient() {
+}
+
+void FakeBluetoothGattServiceClient::Init(dbus::Bus* bus) {
+}
+
+void FakeBluetoothGattServiceClient::AddObserver(Observer* observer) {
+ observers_.AddObserver(observer);
+}
+
+void FakeBluetoothGattServiceClient::RemoveObserver(Observer* observer) {
+ observers_.RemoveObserver(observer);
+}
+
+std::vector<dbus::ObjectPath> FakeBluetoothGattServiceClient::GetServices() {
+ std::vector<dbus::ObjectPath> paths;
+ if (heart_rate_service_properties_.get()) {
+ DCHECK(!heart_rate_service_path_.empty());
+ paths.push_back(dbus::ObjectPath(heart_rate_service_path_));
+ }
+ return paths;
+}
+
+FakeBluetoothGattServiceClient::Properties*
+FakeBluetoothGattServiceClient::GetProperties(
+ const dbus::ObjectPath& object_path) {
+ if (object_path.value() == heart_rate_service_path_)
+ return heart_rate_service_properties_.get();
+ return NULL;
+}
+
+void FakeBluetoothGattServiceClient::ExposeHeartRateService(
+ const dbus::ObjectPath& device_path) {
+ if (heart_rate_service_properties_.get()) {
+ DCHECK(!heart_rate_service_path_.empty());
+ VLOG(1) << "Fake Heart Rate Service already exposed.";
+ return;
+ }
+ VLOG(2) << "Exposing fake Heart Rate Service.";
+ heart_rate_service_path_ =
+ device_path.value() + "/" + kHeartRateServicePathComponent;
+ heart_rate_service_properties_.reset(new Properties(base::Bind(
+ &FakeBluetoothGattServiceClient::OnPropertyChanged,
+ base::Unretained(this),
+ dbus::ObjectPath(heart_rate_service_path_))));
+ heart_rate_service_properties_->uuid.ReplaceValue(heart_rate_service_path_);
+
+ 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_));
+}
+
+void FakeBluetoothGattServiceClient::HideHeartRateService() {
+ if (!heart_rate_service_properties_.get()) {
+ DCHECK(heart_rate_service_path_.empty());
+ VLOG(1) << "Fake Heart Rate Service already hidden.";
+ return;
+ }
+ VLOG(2) << "Hiding fake Heart Rate Service.";
+ FakeBluetoothGattCharacteristicClient* char_client =
+ static_cast<FakeBluetoothGattCharacteristicClient*>(
+ DBusThreadManager::Get()->GetBluetoothGattCharacteristicClient());
+ char_client->HideHeartRateCharacteristics();
+
+ heart_rate_service_properties_.reset();
+ std::string hrs_path = heart_rate_service_path_;
+ heart_rate_service_path_.clear();
+
+ NotifyServiceRemoved(dbus::ObjectPath(hrs_path));
+}
+
+void FakeBluetoothGattServiceClient::OnPropertyChanged(
+ const dbus::ObjectPath& object_path,
+ const std::string& property_name) {
+ VLOG(2) << "Fake GATT Service property changed: " << object_path.value()
+ << ": " << property_name;
+ FOR_EACH_OBSERVER(BluetoothGattServiceClient::Observer, observers_,
+ GattServicePropertyChanged(object_path, property_name));
+}
+
+void FakeBluetoothGattServiceClient::NotifyServiceAdded(
+ const dbus::ObjectPath& object_path) {
+ VLOG(2) << "GATT service added: " << object_path.value();
+ FOR_EACH_OBSERVER(
+ BluetoothGattServiceClient::Observer, observers_,
+ GattServiceAdded(object_path));
+}
+
+void FakeBluetoothGattServiceClient::NotifyServiceRemoved(
+ const dbus::ObjectPath& object_path) {
+ VLOG(2) << "GATT service removed: " << object_path.value();
+ FOR_EACH_OBSERVER(
+ BluetoothGattServiceClient::Observer, observers_,
+ GattServiceRemoved(object_path));
+}
+
+} // namespace chromeos
« no previous file with comments | « chromeos/dbus/fake_bluetooth_gatt_service_client.h ('k') | chromeos/dbus/fake_dbus_thread_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698