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

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

Issue 11743024: Implemented BluetoothExtensionFunction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge Created 7 years, 11 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 23 matching lines...) Expand all
34 } 34 }
35 35
36 ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() { 36 ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() {
37 CHECK(socket_map_.size() == 0); 37 CHECK(socket_map_.size() == 0);
38 if (adapter_) { 38 if (adapter_) {
39 adapter_->RemoveObserver(this); 39 adapter_->RemoveObserver(this);
40 adapter_ = NULL; 40 adapter_ = NULL;
41 } 41 }
42 } 42 }
43 43
44 scoped_refptr<const device::BluetoothAdapter>
45 ExtensionBluetoothEventRouter::adapter() {
46 return GetMutableAdapter();
47 }
48
49 scoped_refptr<device::BluetoothAdapter> 44 scoped_refptr<device::BluetoothAdapter>
50 ExtensionBluetoothEventRouter::GetMutableAdapter() { 45 ExtensionBluetoothEventRouter::GetAdapter() {
51 if (adapter_) 46 if (adapter_)
52 return adapter_; 47 return adapter_;
53 48
54 return device::BluetoothAdapterFactory::DefaultAdapter(); 49 return device::BluetoothAdapterFactory::DefaultAdapter();
55 } 50 }
56 51
57 void ExtensionBluetoothEventRouter::OnListenerAdded() { 52 void ExtensionBluetoothEventRouter::OnListenerAdded() {
58 num_event_listeners_++; 53 num_event_listeners_++;
59 InitializeAdapterIfNeeded(); 54 InitializeAdapterIfNeeded();
60 } 55 }
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 171
177 if (!send_discovery_events_) 172 if (!send_discovery_events_)
178 return; 173 return;
179 174
180 DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered, 175 DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered,
181 *extension_device); 176 *extension_device);
182 } 177 }
183 178
184 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() { 179 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() {
185 if (!adapter_) { 180 if (!adapter_) {
186 adapter_ = GetMutableAdapter(); 181 adapter_ = GetAdapter();
187 adapter_->AddObserver(this); 182 adapter_->AddObserver(this);
188 } 183 }
189 } 184 }
190 185
191 void ExtensionBluetoothEventRouter::MaybeReleaseAdapter() { 186 void ExtensionBluetoothEventRouter::MaybeReleaseAdapter() {
192 if (adapter_ && num_event_listeners_ == 0) { 187 if (adapter_ && num_event_listeners_ == 0) {
193 adapter_->RemoveObserver(this); 188 adapter_->RemoveObserver(this);
194 adapter_ = NULL; 189 adapter_ = NULL;
195 } 190 }
196 } 191 }
197 192
198 void ExtensionBluetoothEventRouter::DispatchAdapterStateEvent() { 193 void ExtensionBluetoothEventRouter::DispatchAdapterStateEvent() {
199 api::bluetooth::AdapterState state; 194 api::bluetooth::AdapterState state;
200 PopulateAdapterState(*adapter_, &state); 195 PopulateAdapterState(*adapter_, &state);
201 196
202 scoped_ptr<ListValue> args(new ListValue()); 197 scoped_ptr<ListValue> args(new ListValue());
203 args->Append(state.ToValue().release()); 198 args->Append(state.ToValue().release());
204 scoped_ptr<Event> event(new Event( 199 scoped_ptr<Event> event(new Event(
205 extensions::event_names::kBluetoothOnAdapterStateChanged, 200 extensions::event_names::kBluetoothOnAdapterStateChanged,
206 args.Pass())); 201 args.Pass()));
207 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass()); 202 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass());
208 } 203 }
209 204
210 } // namespace extensions 205 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698