Index: chromeos/dbus/fake_bluetooth_advertisement_manager_client.cc |
diff --git a/chromeos/dbus/fake_bluetooth_advertisement_manager_client.cc b/chromeos/dbus/fake_bluetooth_advertisement_manager_client.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1f4bf0a13cfd1a0ade6ef7a0dc16f8a338dadf5a |
--- /dev/null |
+++ b/chromeos/dbus/fake_bluetooth_advertisement_manager_client.cc |
@@ -0,0 +1,85 @@ |
+// Copyright (c) 2013 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_advertisement_manager_client.h" |
+ |
+#include "base/logging.h" |
+#include "base/message_loop/message_loop.h" |
+#include "chromeos/dbus/fake_bluetooth_advertisement_service_provider.h" |
+#include "dbus/bus.h" |
+#include "dbus/message.h" |
+#include "dbus/object_proxy.h" |
+#include "third_party/cros_system_api/dbus/service_constants.h" |
+ |
+namespace chromeos { |
+ |
+const char FakeBluetoothAdvertisementManagerClient::kL2capUuid[] = |
+ "4d995052-33cc-4fdf-b446-75f32942a076"; |
+const char FakeBluetoothAdvertisementManagerClient::kRfcommUuid[] = |
+ "3f6d6dbf-a6ad-45fc-9653-47dc912ef70e"; |
+const char FakeBluetoothAdvertisementManagerClient::kUnregisterableUuid[] = |
+ "00000000-0000-0000-0000-000000000000"; |
+ |
+FakeBluetoothAdvertisementManagerClient:: |
+ FakeBluetoothAdvertisementManagerClient() { |
+} |
+ |
+FakeBluetoothAdvertisementManagerClient:: |
+ ~FakeBluetoothAdvertisementManagerClient() { |
+} |
+ |
+void FakeBluetoothAdvertisementManagerClient::RegisterAdvertisement( |
+ const dbus::ObjectPath& obj_path, |
+ const base::Closure& callback, |
+ const ErrorCallback& error_callback) { |
+ VLOG(1) << "RegisterAdvertisment: " << obj_path.value(); |
+ |
+ ServiceProviderMap::iterator iter = service_provider_map_.find(obj_path); |
+ if (iter == service_provider_map_.end()) { |
+ error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments, |
Marie Janssen
2015/04/09 22:36:27
bluetooth_advertising_manager instead.
rkc
2015/04/13 19:47:45
Done.
|
+ "Advertisement not registered"); |
Marie Janssen
2015/04/09 22:36:27
This error message is confusing, I think. Maybe s
rkc
2015/04/13 19:47:45
Done.
|
+ } else if (!currently_registered_.empty()) { |
+ error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments, |
Marie Janssen
2015/04/09 22:36:27
Should probably be kErrorAlreadyExists
rkc
2015/04/13 19:47:45
Done.
|
+ "Already registered"); |
+ } else if (obj_path.value() != currently_registered_) { |
+ error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments, |
+ "Different advertisement registered"); |
Marie Janssen
2015/04/09 22:36:27
This should be kErrorFailed and "Already advertisi
rkc
2015/04/13 19:47:45
I presume you mean kErrorAlreadyExists? I can't fi
|
+ } else { |
+ currently_registered_ = obj_path.value(); |
+ base::MessageLoop::current()->PostTask(FROM_HERE, callback); |
+ } |
+} |
+ |
+void FakeBluetoothAdvertisementManagerClient::UnregisterAdvertisement( |
+ const dbus::ObjectPath& obj_path, |
+ const base::Closure& callback, |
+ const ErrorCallback& error_callback) { |
+ VLOG(1) << "UnregisterAdvertisment: " << obj_path.value(); |
Marie Janssen
2015/04/09 22:36:27
Probably check here that the obj_path is the same
rkc
2015/04/13 19:47:45
Done. Though again, I can't find a kDoesNotExist i
|
+ |
+ ServiceProviderMap::iterator iter = service_provider_map_.find(obj_path); |
+ if (iter == service_provider_map_.end()) { |
+ error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments, |
+ "Advertisement not registered"); |
+ } else { |
+ currently_registered_.clear(); |
+ base::MessageLoop::current()->PostTask(FROM_HERE, callback); |
+ } |
+} |
+ |
+void FakeBluetoothAdvertisementManagerClient:: |
+ RegisterAdvertisementServiceProvider( |
+ FakeBluetoothAdvertisementServiceProvider* service_provider) { |
+ service_provider_map_[service_provider->object_path_] = service_provider; |
+} |
+ |
+void FakeBluetoothAdvertisementManagerClient:: |
+ UnregisterAdvertisementServiceProvider( |
+ FakeBluetoothAdvertisementServiceProvider* service_provider) { |
+ ServiceProviderMap::iterator iter = |
+ service_provider_map_.find(service_provider->object_path_); |
+ if (iter != service_provider_map_.end() && iter->second == service_provider) |
+ service_provider_map_.erase(iter); |
+} |
+ |
+} // namespace chromeos |