OLD | NEW |
---|---|
(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, | |
Marie Janssen
2015/04/09 22:36:27
bluetooth_advertising_manager instead.
rkc
2015/04/13 19:47:45
Done.
| |
41 "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.
| |
42 } else if (!currently_registered_.empty()) { | |
43 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.
| |
44 "Already registered"); | |
45 } else if (obj_path.value() != currently_registered_) { | |
46 error_callback.Run(bluetooth_profile_manager::kErrorInvalidArguments, | |
47 "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
| |
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(); | |
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
| |
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 | |
OLD | NEW |