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

Side by Side Diff: chrome/browser/extensions/api/bluetooth/bluetooth_event_router.cc

Issue 16295003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" 5 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 19 matching lines...) Expand all
30 responsible_for_discovery_(false), 30 responsible_for_discovery_(false),
31 profile_(profile), 31 profile_(profile),
32 adapter_(NULL), 32 adapter_(NULL),
33 num_event_listeners_(0), 33 num_event_listeners_(0),
34 next_socket_id_(1), 34 next_socket_id_(1),
35 weak_ptr_factory_(this) { 35 weak_ptr_factory_(this) {
36 DCHECK(profile_); 36 DCHECK(profile_);
37 } 37 }
38 38
39 ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() { 39 ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() {
40 if (adapter_) { 40 if (adapter_.get()) {
41 adapter_->RemoveObserver(this); 41 adapter_->RemoveObserver(this);
42 adapter_ = NULL; 42 adapter_ = NULL;
43 } 43 }
44 DLOG_IF(WARNING, socket_map_.size() != 0) 44 DLOG_IF(WARNING, socket_map_.size() != 0)
45 << "Bluetooth sockets are still open."; 45 << "Bluetooth sockets are still open.";
46 socket_map_.clear(); 46 socket_map_.clear();
47 47
48 for (BluetoothProfileMap::iterator iter = bluetooth_profile_map_.begin(); 48 for (BluetoothProfileMap::iterator iter = bluetooth_profile_map_.begin();
49 iter != bluetooth_profile_map_.end(); 49 iter != bluetooth_profile_map_.end();
50 ++iter) { 50 ++iter) {
51 iter->second->Unregister(); 51 iter->second->Unregister();
52 } 52 }
53 } 53 }
54 54
55 bool ExtensionBluetoothEventRouter::IsBluetoothSupported() const { 55 bool ExtensionBluetoothEventRouter::IsBluetoothSupported() const {
56 return adapter_ || 56 return adapter_.get() ||
57 device::BluetoothAdapterFactory::IsBluetoothAdapterAvailable(); 57 device::BluetoothAdapterFactory::IsBluetoothAdapterAvailable();
58 } 58 }
59 59
60 void ExtensionBluetoothEventRouter::GetAdapter( 60 void ExtensionBluetoothEventRouter::GetAdapter(
61 const device::BluetoothAdapterFactory::AdapterCallback& callback) { 61 const device::BluetoothAdapterFactory::AdapterCallback& callback) {
62 if (adapter_) { 62 if (adapter_.get()) {
63 callback.Run(scoped_refptr<device::BluetoothAdapter>(adapter_)); 63 callback.Run(scoped_refptr<device::BluetoothAdapter>(adapter_));
64 return; 64 return;
65 } 65 }
66 66
67 device::BluetoothAdapterFactory::GetAdapter(callback); 67 device::BluetoothAdapterFactory::GetAdapter(callback);
68 } 68 }
69 69
70 void ExtensionBluetoothEventRouter::OnListenerAdded() { 70 void ExtensionBluetoothEventRouter::OnListenerAdded() {
71 num_event_listeners_++; 71 num_event_listeners_++;
72 InitializeAdapterIfNeeded(); 72 InitializeAdapterIfNeeded();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 scoped_ptr<ListValue> args(new ListValue()); 184 scoped_ptr<ListValue> args(new ListValue());
185 args->Append(result_socket.ToValue().release()); 185 args->Append(result_socket.ToValue().release());
186 scoped_ptr<Event> event(new Event( 186 scoped_ptr<Event> event(new Event(
187 extensions::event_names::kBluetoothOnConnection, args.Pass())); 187 extensions::event_names::kBluetoothOnConnection, args.Pass()));
188 ExtensionSystem::Get(profile_)->event_router()->DispatchEventToExtension( 188 ExtensionSystem::Get(profile_)->event_router()->DispatchEventToExtension(
189 extension_id, event.Pass()); 189 extension_id, event.Pass());
190 } 190 }
191 191
192 void ExtensionBluetoothEventRouter::AdapterPresentChanged( 192 void ExtensionBluetoothEventRouter::AdapterPresentChanged(
193 device::BluetoothAdapter* adapter, bool present) { 193 device::BluetoothAdapter* adapter, bool present) {
194 if (adapter != adapter_) { 194 if (adapter != adapter_.get()) {
195 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); 195 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress();
196 return; 196 return;
197 } 197 }
198 DispatchAdapterStateEvent(); 198 DispatchAdapterStateEvent();
199 } 199 }
200 200
201 void ExtensionBluetoothEventRouter::AdapterPoweredChanged( 201 void ExtensionBluetoothEventRouter::AdapterPoweredChanged(
202 device::BluetoothAdapter* adapter, bool has_power) { 202 device::BluetoothAdapter* adapter, bool has_power) {
203 if (adapter != adapter_) { 203 if (adapter != adapter_.get()) {
204 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); 204 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress();
205 return; 205 return;
206 } 206 }
207 DispatchAdapterStateEvent(); 207 DispatchAdapterStateEvent();
208 } 208 }
209 209
210 void ExtensionBluetoothEventRouter::AdapterDiscoveringChanged( 210 void ExtensionBluetoothEventRouter::AdapterDiscoveringChanged(
211 device::BluetoothAdapter* adapter, bool discovering) { 211 device::BluetoothAdapter* adapter, bool discovering) {
212 if (adapter != adapter_) { 212 if (adapter != adapter_.get()) {
213 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); 213 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress();
214 return; 214 return;
215 } 215 }
216 216
217 if (!discovering) { 217 if (!discovering) {
218 send_discovery_events_ = false; 218 send_discovery_events_ = false;
219 responsible_for_discovery_ = false; 219 responsible_for_discovery_ = false;
220 discovered_devices_.clear(); 220 discovered_devices_.clear();
221 } 221 }
222 222
223 DispatchAdapterStateEvent(); 223 DispatchAdapterStateEvent();
224 } 224 }
225 225
226 void ExtensionBluetoothEventRouter::DeviceAdded( 226 void ExtensionBluetoothEventRouter::DeviceAdded(
227 device::BluetoothAdapter* adapter, 227 device::BluetoothAdapter* adapter,
228 device::BluetoothDevice* device) { 228 device::BluetoothDevice* device) {
229 if (adapter != adapter_) { 229 if (adapter != adapter_.get()) {
230 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress(); 230 DVLOG(1) << "Ignoring event for adapter " << adapter->GetAddress();
231 return; 231 return;
232 } 232 }
233 233
234 extensions::api::bluetooth::Device* extension_device = 234 extensions::api::bluetooth::Device* extension_device =
235 new extensions::api::bluetooth::Device(); 235 new extensions::api::bluetooth::Device();
236 extensions::api::bluetooth::BluetoothDeviceToApiDevice( 236 extensions::api::bluetooth::BluetoothDeviceToApiDevice(
237 *device, extension_device); 237 *device, extension_device);
238 discovered_devices_.push_back(extension_device); 238 discovered_devices_.push_back(extension_device);
239 239
240 if (!send_discovery_events_) 240 if (!send_discovery_events_)
241 return; 241 return;
242 242
243 DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered, 243 DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered,
244 *extension_device); 244 *extension_device);
245 } 245 }
246 246
247 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() { 247 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() {
248 if (!adapter_) { 248 if (!adapter_.get()) {
249 GetAdapter(base::Bind(&ExtensionBluetoothEventRouter::InitializeAdapter, 249 GetAdapter(base::Bind(&ExtensionBluetoothEventRouter::InitializeAdapter,
250 weak_ptr_factory_.GetWeakPtr())); 250 weak_ptr_factory_.GetWeakPtr()));
251 } 251 }
252 } 252 }
253 253
254 void ExtensionBluetoothEventRouter::InitializeAdapter( 254 void ExtensionBluetoothEventRouter::InitializeAdapter(
255 scoped_refptr<device::BluetoothAdapter> adapter) { 255 scoped_refptr<device::BluetoothAdapter> adapter) {
256 if (!adapter_) { 256 if (!adapter_.get()) {
257 adapter_ = adapter; 257 adapter_ = adapter;
258 adapter_->AddObserver(this); 258 adapter_->AddObserver(this);
259 } 259 }
260 } 260 }
261 261
262 void ExtensionBluetoothEventRouter::MaybeReleaseAdapter() { 262 void ExtensionBluetoothEventRouter::MaybeReleaseAdapter() {
263 if (adapter_ && num_event_listeners_ == 0) { 263 if (adapter_.get() && num_event_listeners_ == 0) {
264 adapter_->RemoveObserver(this); 264 adapter_->RemoveObserver(this);
265 adapter_ = NULL; 265 adapter_ = NULL;
266 } 266 }
267 } 267 }
268 268
269 void ExtensionBluetoothEventRouter::DispatchAdapterStateEvent() { 269 void ExtensionBluetoothEventRouter::DispatchAdapterStateEvent() {
270 api::bluetooth::AdapterState state; 270 api::bluetooth::AdapterState state;
271 PopulateAdapterState(*adapter_, &state); 271 PopulateAdapterState(*adapter_.get(), &state);
272 272
273 scoped_ptr<ListValue> args(new ListValue()); 273 scoped_ptr<ListValue> args(new ListValue());
274 args->Append(state.ToValue().release()); 274 args->Append(state.ToValue().release());
275 scoped_ptr<Event> event(new Event( 275 scoped_ptr<Event> event(new Event(
276 extensions::event_names::kBluetoothOnAdapterStateChanged, 276 extensions::event_names::kBluetoothOnAdapterStateChanged,
277 args.Pass())); 277 args.Pass()));
278 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass()); 278 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass());
279 } 279 }
280 280
281 } // namespace extensions 281 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698