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

Side by Side Diff: chromeos/dbus/fake_bluetooth_advertisement_manager_client.cc

Issue 1052363005: Add DBus bindings for BLE Advertisement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chromeos/dbus/fake_bluetooth_advertisement_manager_client.h"
6
7 #include "base/logging.h"
8 #include "base/message_loop/message_loop.h"
9 #include "chromeos/dbus/fake_bluetooth_advertisement_service_provider.h"
10 #include "dbus/bus.h"
11 #include "dbus/message.h"
12 #include "dbus/object_proxy.h"
13 #include "third_party/cros_system_api/dbus/service_constants.h"
14
15 namespace chromeos {
16
17 const char FakeBluetoothAdvertisementManagerClient::kL2capUuid[] =
18 "4d995052-33cc-4fdf-b446-75f32942a076";
19 const char FakeBluetoothAdvertisementManagerClient::kRfcommUuid[] =
20 "3f6d6dbf-a6ad-45fc-9653-47dc912ef70e";
21 const char FakeBluetoothAdvertisementManagerClient::kUnregisterableUuid[] =
22 "00000000-0000-0000-0000-000000000000";
23
24 FakeBluetoothAdvertisementManagerClient::
25 FakeBluetoothAdvertisementManagerClient() {
26 }
27
28 FakeBluetoothAdvertisementManagerClient::
29 ~FakeBluetoothAdvertisementManagerClient() {
30 }
31
32 void FakeBluetoothAdvertisementManagerClient::RegisterAdvertisement(
33 const dbus::ObjectPath& obj_path,
34 const base::Closure& callback,
35 const ErrorCallback& error_callback) {
36 VLOG(1) << "RegisterAdvertisment: " << obj_path.value();
37
38 ServiceProviderMap::iterator iter = service_provider_map_.find(obj_path);
39 if (iter == service_provider_map_.end()) {
40 error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments,
41 "Advertisement not registered");
42 } else if (!currently_registered_.empty()) {
43 error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments,
44 "Already registered");
45 } else if (obj_path.value() != currently_registered_) {
46 error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments,
47 "Different advertisement registered");
48 } else {
49 currently_registered_ = obj_path.value();
50 base::MessageLoop::current()->PostTask(FROM_HERE, callback);
51 }
52 }
53
54 void FakeBluetoothAdvertisementManagerClient::UnregisterAdvertisement(
55 const dbus::ObjectPath& obj_path,
56 const base::Closure& callback,
57 const ErrorCallback& error_callback) {
58 VLOG(1) << "UnregisterAdvertisment: " << obj_path.value();
59
60 ServiceProviderMap::iterator iter = service_provider_map_.find(obj_path);
61 if (iter == service_provider_map_.end()) {
62 error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments,
63 "Advertisement not registered");
64 } else {
65 currently_registered_.clear();
66 base::MessageLoop::current()->PostTask(FROM_HERE, callback);
67 }
68 }
69
70 void FakeBluetoothAdvertisementManagerClient::
71 RegisterAdvertisementServiceProvider(
72 FakeBluetoothAdvertisementServiceProvider* service_provider) {
73 service_provider_map_[service_provider->object_path_] = service_provider;
74 }
75
76 void FakeBluetoothAdvertisementManagerClient::
77 UnregisterAdvertisementServiceProvider(
78 FakeBluetoothAdvertisementServiceProvider* service_provider) {
79 ServiceProviderMap::iterator iter =
80 service_provider_map_.find(service_provider->object_path_);
81 if (iter != service_provider_map_.end() && iter->second == service_provider)
82 service_provider_map_.erase(iter);
83 }
84
85 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698