OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/logging.h" | 5 #include "base/logging.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "dbus/bus.h" | 7 #include "dbus/bus.h" |
8 #include "dbus/message.h" | 8 #include "dbus/message.h" |
9 #include "dbus/object_proxy.h" | 9 #include "dbus/object_proxy.h" |
10 #include "fake_bluetooth_le_advertisement_service_provider.h" | 10 #include "fake_bluetooth_le_advertisement_service_provider.h" |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 } | 47 } |
48 | 48 |
49 ServiceProviderMap::iterator iter = | 49 ServiceProviderMap::iterator iter = |
50 service_provider_map_.find(advertisement_object_path); | 50 service_provider_map_.find(advertisement_object_path); |
51 if (iter == service_provider_map_.end()) { | 51 if (iter == service_provider_map_.end()) { |
52 error_callback.Run(bluetooth_advertising_manager::kErrorInvalidArguments, | 52 error_callback.Run(bluetooth_advertising_manager::kErrorInvalidArguments, |
53 "Advertisement object not registered"); | 53 "Advertisement object not registered"); |
54 } else if (!currently_registered_.value().empty()) { | 54 } else if (!currently_registered_.value().empty()) { |
55 error_callback.Run(bluetooth_advertising_manager::kErrorFailed, | 55 error_callback.Run(bluetooth_advertising_manager::kErrorFailed, |
56 "Maximum advertisements reached"); | 56 "Maximum advertisements reached"); |
| 57 } else if (advertisement_object_path != currently_registered_) { |
| 58 error_callback.Run(bluetooth_advertising_manager::kErrorAlreadyExists, |
| 59 "Already advertising."); |
57 } else { | 60 } else { |
58 currently_registered_ = advertisement_object_path; | 61 currently_registered_ = advertisement_object_path; |
59 base::MessageLoop::current()->PostTask(FROM_HERE, callback); | 62 base::MessageLoop::current()->PostTask(FROM_HERE, callback); |
60 } | 63 } |
61 } | 64 } |
62 | 65 |
63 void FakeBluetoothLEAdvertisingManagerClient::UnregisterAdvertisement( | 66 void FakeBluetoothLEAdvertisingManagerClient::UnregisterAdvertisement( |
64 const dbus::ObjectPath& manager_object_path, | 67 const dbus::ObjectPath& manager_object_path, |
65 const dbus::ObjectPath& advertisement_object_path, | 68 const dbus::ObjectPath& advertisement_object_path, |
66 const base::Closure& callback, | 69 const base::Closure& callback, |
(...skipping 28 matching lines...) Expand all Loading... |
95 void FakeBluetoothLEAdvertisingManagerClient:: | 98 void FakeBluetoothLEAdvertisingManagerClient:: |
96 UnregisterAdvertisementServiceProvider( | 99 UnregisterAdvertisementServiceProvider( |
97 FakeBluetoothLEAdvertisementServiceProvider* service_provider) { | 100 FakeBluetoothLEAdvertisementServiceProvider* service_provider) { |
98 ServiceProviderMap::iterator iter = | 101 ServiceProviderMap::iterator iter = |
99 service_provider_map_.find(service_provider->object_path_); | 102 service_provider_map_.find(service_provider->object_path_); |
100 if (iter != service_provider_map_.end() && iter->second == service_provider) | 103 if (iter != service_provider_map_.end() && iter->second == service_provider) |
101 service_provider_map_.erase(iter); | 104 service_provider_map_.erase(iter); |
102 } | 105 } |
103 | 106 |
104 } // namespace chromeos | 107 } // namespace chromeos |
OLD | NEW |