OLD | NEW |
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 "device/bluetooth/bluetooth_adapter_win.h" | 5 #include "device/bluetooth/bluetooth_adapter_win.h" |
6 | 6 |
7 #include <hash_set> | 7 #include <hash_set> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 | 178 |
179 void BluetoothAdapterWin::DevicesDiscovered( | 179 void BluetoothAdapterWin::DevicesDiscovered( |
180 const ScopedVector<BluetoothTaskManagerWin::DeviceState>& devices) { | 180 const ScopedVector<BluetoothTaskManagerWin::DeviceState>& devices) { |
181 DCHECK(thread_checker_.CalledOnValidThread()); | 181 DCHECK(thread_checker_.CalledOnValidThread()); |
182 for (ScopedVector<BluetoothTaskManagerWin::DeviceState>::const_iterator iter = | 182 for (ScopedVector<BluetoothTaskManagerWin::DeviceState>::const_iterator iter = |
183 devices.begin(); | 183 devices.begin(); |
184 iter != devices.end(); | 184 iter != devices.end(); |
185 ++iter) { | 185 ++iter) { |
186 if (discovered_devices_.find((*iter)->address) == | 186 if (discovered_devices_.find((*iter)->address) == |
187 discovered_devices_.end()) { | 187 discovered_devices_.end()) { |
188 BluetoothDeviceWin device_win(**iter); | 188 BluetoothDeviceWin device_win(**iter, |
| 189 ui_task_runner_, |
| 190 file_task_runner_, |
| 191 net_log_, |
| 192 net_log_source_); |
189 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | 193 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
190 DeviceAdded(this, &device_win)); | 194 DeviceAdded(this, &device_win)); |
191 discovered_devices_.insert((*iter)->address); | 195 discovered_devices_.insert((*iter)->address); |
192 } | 196 } |
193 } | 197 } |
194 } | 198 } |
195 | 199 |
196 void BluetoothAdapterWin::DevicesUpdated( | 200 void BluetoothAdapterWin::DevicesUpdated( |
197 const ScopedVector<BluetoothTaskManagerWin::DeviceState>& devices) { | 201 const ScopedVector<BluetoothTaskManagerWin::DeviceState>& devices) { |
198 STLDeleteValues(&devices_); | 202 STLDeleteValues(&devices_); |
199 for (ScopedVector<BluetoothTaskManagerWin::DeviceState>::const_iterator iter = | 203 for (ScopedVector<BluetoothTaskManagerWin::DeviceState>::const_iterator iter = |
200 devices.begin(); | 204 devices.begin(); |
201 iter != devices.end(); | 205 iter != devices.end(); |
202 ++iter) { | 206 ++iter) { |
203 devices_[(*iter)->address] = new BluetoothDeviceWin(**iter); | 207 devices_[(*iter)->address] = new BluetoothDeviceWin( |
| 208 **iter, ui_task_runner_, file_task_runner_, net_log_, net_log_source_); |
204 } | 209 } |
205 } | 210 } |
206 | 211 |
207 // If the method is called when |discovery_status_| is DISCOVERY_STOPPING, | 212 // If the method is called when |discovery_status_| is DISCOVERY_STOPPING, |
208 // starting again is handled by BluetoothAdapterWin::DiscoveryStopped(). | 213 // starting again is handled by BluetoothAdapterWin::DiscoveryStopped(). |
209 void BluetoothAdapterWin::AddDiscoverySession( | 214 void BluetoothAdapterWin::AddDiscoverySession( |
210 const base::Closure& callback, | 215 const base::Closure& callback, |
211 const ErrorCallback& error_callback) { | 216 const ErrorCallback& error_callback) { |
212 if (discovery_status_ == DISCOVERING) { | 217 if (discovery_status_ == DISCOVERING) { |
213 num_discovery_listeners_++; | 218 num_discovery_listeners_++; |
(...skipping 27 matching lines...) Expand all Loading... |
241 void BluetoothAdapterWin::InitForTest( | 246 void BluetoothAdapterWin::InitForTest( |
242 scoped_refptr<base::SequencedTaskRunner> ui_task_runner, | 247 scoped_refptr<base::SequencedTaskRunner> ui_task_runner, |
243 scoped_refptr<base::SequencedTaskRunner> bluetooth_task_runner) { | 248 scoped_refptr<base::SequencedTaskRunner> bluetooth_task_runner) { |
244 ui_task_runner_ = ui_task_runner; | 249 ui_task_runner_ = ui_task_runner; |
245 task_manager_ = | 250 task_manager_ = |
246 new BluetoothTaskManagerWin(ui_task_runner_); | 251 new BluetoothTaskManagerWin(ui_task_runner_); |
247 task_manager_->AddObserver(this); | 252 task_manager_->AddObserver(this); |
248 task_manager_->InitializeWithBluetoothTaskRunner(bluetooth_task_runner); | 253 task_manager_->InitializeWithBluetoothTaskRunner(bluetooth_task_runner); |
249 } | 254 } |
250 | 255 |
| 256 void BluetoothAdapterWin::PostInit( |
| 257 scoped_refptr<base::SequencedTaskRunner> ui_task_runner, |
| 258 scoped_refptr<base::SequencedTaskRunner> file_task_runner, |
| 259 net::NetLog* net_log, |
| 260 const net::NetLog::Source& net_log_source) { |
| 261 ui_task_runner_ = ui_task_runner; |
| 262 file_task_runner_ = file_task_runner; |
| 263 net_log_ = net_log; |
| 264 net_log_source_ = net_log_source; |
| 265 } |
| 266 |
251 void BluetoothAdapterWin::MaybePostStartDiscoveryTask() { | 267 void BluetoothAdapterWin::MaybePostStartDiscoveryTask() { |
252 if (discovery_status_ == NOT_DISCOVERING && | 268 if (discovery_status_ == NOT_DISCOVERING && |
253 !on_start_discovery_callbacks_.empty()) { | 269 !on_start_discovery_callbacks_.empty()) { |
254 discovery_status_ = DISCOVERY_STARTING; | 270 discovery_status_ = DISCOVERY_STARTING; |
255 task_manager_->PostStartDiscoveryTask(); | 271 task_manager_->PostStartDiscoveryTask(); |
256 } | 272 } |
257 } | 273 } |
258 | 274 |
259 void BluetoothAdapterWin::MaybePostStopDiscoveryTask() { | 275 void BluetoothAdapterWin::MaybePostStopDiscoveryTask() { |
260 if (discovery_status_ != DISCOVERING) | 276 if (discovery_status_ != DISCOVERING) |
261 return; | 277 return; |
262 | 278 |
263 if (on_stop_discovery_callbacks_.size() < num_discovery_listeners_) { | 279 if (on_stop_discovery_callbacks_.size() < num_discovery_listeners_) { |
264 for (std::vector<base::Closure>::const_iterator iter = | 280 for (std::vector<base::Closure>::const_iterator iter = |
265 on_stop_discovery_callbacks_.begin(); | 281 on_stop_discovery_callbacks_.begin(); |
266 iter != on_stop_discovery_callbacks_.end(); | 282 iter != on_stop_discovery_callbacks_.end(); |
267 ++iter) { | 283 ++iter) { |
268 ui_task_runner_->PostTask(FROM_HERE, *iter); | 284 ui_task_runner_->PostTask(FROM_HERE, *iter); |
269 } | 285 } |
270 num_discovery_listeners_ -= on_stop_discovery_callbacks_.size(); | 286 num_discovery_listeners_ -= on_stop_discovery_callbacks_.size(); |
271 on_stop_discovery_callbacks_.clear(); | 287 on_stop_discovery_callbacks_.clear(); |
272 return; | 288 return; |
273 } | 289 } |
274 | 290 |
275 discovery_status_ = DISCOVERY_STOPPING; | 291 discovery_status_ = DISCOVERY_STOPPING; |
276 task_manager_->PostStopDiscoveryTask(); | 292 task_manager_->PostStopDiscoveryTask(); |
277 } | 293 } |
278 | 294 |
279 } // namespace device | 295 } // namespace device |
OLD | NEW |