Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/devtools/device/android_device_manager.h" | 5 #include "chrome/browser/devtools/device/android_device_manager.h" |
| 6 | 6 |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "net/base/io_buffer.h" | 10 #include "net/base/io_buffer.h" |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 211 | 211 |
| 212 // static | 212 // static |
| 213 scoped_refptr<AndroidDeviceManager> AndroidDeviceManager::Create() { | 213 scoped_refptr<AndroidDeviceManager> AndroidDeviceManager::Create() { |
| 214 return new AndroidDeviceManager(); | 214 return new AndroidDeviceManager(); |
| 215 } | 215 } |
| 216 | 216 |
| 217 void AndroidDeviceManager::QueryDevices( | 217 void AndroidDeviceManager::QueryDevices( |
| 218 const DeviceProviders& providers, | 218 const DeviceProviders& providers, |
| 219 const QueryDevicesCallback& callback) { | 219 const QueryDevicesCallback& callback) { |
| 220 DCHECK(CalledOnValidThread()); | 220 DCHECK(CalledOnValidThread()); |
| 221 stopped_ = false; | |
| 222 Devices empty; | 221 Devices empty; |
| 223 QueryNextProvider(callback, providers, empty, empty); | 222 QueryNextProvider(callback, providers, empty, empty); |
| 224 } | 223 } |
| 225 | 224 |
| 226 void AndroidDeviceManager::Stop() { | 225 void AndroidDeviceManager::ReleaseDevice(const std::string& serial) { |
|
pfeldman
2014/05/21 11:33:41
What if different clients query and release device
| |
| 227 DCHECK(CalledOnValidThread()); | 226 DCHECK(CalledOnValidThread()); |
| 228 stopped_ = true; | 227 devices_.erase(serial); |
| 229 devices_.clear(); | |
| 230 } | 228 } |
| 231 | 229 |
| 232 bool AndroidDeviceManager::IsConnected(const std::string& serial) { | 230 bool AndroidDeviceManager::IsConnected(const std::string& serial) { |
| 233 DCHECK(CalledOnValidThread()); | 231 DCHECK(CalledOnValidThread()); |
| 234 Device* device = FindDevice(serial); | 232 Device* device = FindDevice(serial); |
| 235 return device && device->is_connected(); | 233 return device && device->is_connected(); |
| 236 } | 234 } |
| 237 | 235 |
| 238 void AndroidDeviceManager::QueryDeviceInfo(const std::string& serial, | 236 void AndroidDeviceManager::QueryDeviceInfo(const std::string& serial, |
| 239 const DeviceInfoCallback& callback) { | 237 const DeviceInfoCallback& callback) { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 281 device->OpenSocket( | 279 device->OpenSocket( |
| 282 socket_name, | 280 socket_name, |
| 283 base::Bind(&HttpRequest::SocketRequest, | 281 base::Bind(&HttpRequest::SocketRequest, |
| 284 base::StringPrintf(kWebSocketUpgradeRequest, url.c_str()), | 282 base::StringPrintf(kWebSocketUpgradeRequest, url.c_str()), |
| 285 callback)); | 283 callback)); |
| 286 } else { | 284 } else { |
| 287 callback.Run(net::ERR_CONNECTION_FAILED, NULL); | 285 callback.Run(net::ERR_CONNECTION_FAILED, NULL); |
| 288 } | 286 } |
| 289 } | 287 } |
| 290 | 288 |
| 291 AndroidDeviceManager::AndroidDeviceManager() | 289 AndroidDeviceManager::AndroidDeviceManager() { |
| 292 : stopped_(false) { | |
| 293 } | 290 } |
| 294 | 291 |
| 295 AndroidDeviceManager::~AndroidDeviceManager() { | 292 AndroidDeviceManager::~AndroidDeviceManager() { |
| 296 } | 293 } |
| 297 | 294 |
| 298 void AndroidDeviceManager::QueryNextProvider( | 295 void AndroidDeviceManager::QueryNextProvider( |
| 299 const QueryDevicesCallback& callback, | 296 const QueryDevicesCallback& callback, |
| 300 const DeviceProviders& providers, | 297 const DeviceProviders& providers, |
| 301 const Devices& total_devices, | 298 const Devices& total_devices, |
| 302 const Devices& new_devices) { | 299 const Devices& new_devices) { |
| 303 DCHECK(CalledOnValidThread()); | 300 DCHECK(CalledOnValidThread()); |
| 304 | 301 |
| 305 if (stopped_) | |
| 306 return; | |
| 307 | |
| 308 Devices more_devices(total_devices); | 302 Devices more_devices(total_devices); |
| 309 more_devices.insert( | 303 more_devices.insert( |
| 310 more_devices.end(), new_devices.begin(), new_devices.end()); | 304 more_devices.end(), new_devices.begin(), new_devices.end()); |
| 311 | 305 |
| 312 if (providers.empty()) { | 306 if (providers.empty()) { |
| 313 std::vector<std::string> serials; | 307 std::vector<std::string> serials; |
| 314 devices_.clear(); | 308 devices_.clear(); |
| 315 for (Devices::const_iterator it = more_devices.begin(); | 309 for (Devices::const_iterator it = more_devices.begin(); |
| 316 it != more_devices.end(); ++it) { | 310 it != more_devices.end(); ++it) { |
| 317 devices_[(*it)->serial()] = *it; | 311 devices_[(*it)->serial()] = *it; |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 330 } | 324 } |
| 331 | 325 |
| 332 AndroidDeviceManager::Device* | 326 AndroidDeviceManager::Device* |
| 333 AndroidDeviceManager::FindDevice(const std::string& serial) { | 327 AndroidDeviceManager::FindDevice(const std::string& serial) { |
| 334 DCHECK(CalledOnValidThread()); | 328 DCHECK(CalledOnValidThread()); |
| 335 DeviceMap::const_iterator it = devices_.find(serial); | 329 DeviceMap::const_iterator it = devices_.find(serial); |
| 336 if (it == devices_.end()) | 330 if (it == devices_.end()) |
| 337 return NULL; | 331 return NULL; |
| 338 return (*it).second.get(); | 332 return (*it).second.get(); |
| 339 } | 333 } |
| OLD | NEW |