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/usb/android_usb_device.h" | 5 #include "chrome/browser/devtools/device/usb/android_usb_device.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/barrier_closure.h" | 10 #include "base/barrier_closure.h" |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 uint32_t socket_id = ++last_socket_id_; | 372 uint32_t socket_id = ++last_socket_id_; |
373 sockets_[socket_id] = new AndroidUsbSocket(this, socket_id, command, | 373 sockets_[socket_id] = new AndroidUsbSocket(this, socket_id, command, |
374 base::Bind(&AndroidUsbDevice::SocketDeleted, this, socket_id)); | 374 base::Bind(&AndroidUsbDevice::SocketDeleted, this, socket_id)); |
375 return sockets_[socket_id]; | 375 return sockets_[socket_id]; |
376 } | 376 } |
377 | 377 |
378 void AndroidUsbDevice::Send(uint32_t command, | 378 void AndroidUsbDevice::Send(uint32_t command, |
379 uint32_t arg0, | 379 uint32_t arg0, |
380 uint32_t arg1, | 380 uint32_t arg1, |
381 const std::string& body) { | 381 const std::string& body) { |
382 std::unique_ptr<AdbMessage> message( | 382 auto message = base::MakeUnique<AdbMessage>(command, arg0, arg1, body); |
383 new AdbMessage(command, arg0, arg1, body)); | |
384 // Delay open request if not yet connected. | 383 // Delay open request if not yet connected. |
385 if (!is_connected_) { | 384 if (!is_connected_) { |
386 pending_messages_.push_back(message.release()); | 385 pending_messages_.push_back(std::move(message)); |
387 return; | 386 return; |
388 } | 387 } |
389 Queue(std::move(message)); | 388 Queue(std::move(message)); |
390 } | 389 } |
391 | 390 |
392 AndroidUsbDevice::~AndroidUsbDevice() { | 391 AndroidUsbDevice::~AndroidUsbDevice() { |
393 DCHECK(task_runner_->BelongsToCurrentThread()); | 392 DCHECK(task_runner_->BelongsToCurrentThread()); |
394 Terminate(); | 393 Terminate(); |
395 } | 394 } |
396 | 395 |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 AndroidRSAPublicKey(rsa_key_.get()))); | 592 AndroidRSAPublicKey(rsa_key_.get()))); |
594 } | 593 } |
595 } | 594 } |
596 } | 595 } |
597 break; | 596 break; |
598 case AdbMessage::kCommandCNXN: | 597 case AdbMessage::kCommandCNXN: |
599 { | 598 { |
600 is_connected_ = true; | 599 is_connected_ = true; |
601 PendingMessages pending; | 600 PendingMessages pending; |
602 pending.swap(pending_messages_); | 601 pending.swap(pending_messages_); |
603 for (PendingMessages::iterator it = pending.begin(); | 602 for (auto& msg : pending) |
604 it != pending.end(); ++it) { | 603 Queue(std::move(msg)); |
605 Queue(base::WrapUnique(*it)); | |
606 } | |
607 } | 604 } |
608 break; | 605 break; |
609 case AdbMessage::kCommandOKAY: | 606 case AdbMessage::kCommandOKAY: |
610 case AdbMessage::kCommandWRTE: | 607 case AdbMessage::kCommandWRTE: |
611 case AdbMessage::kCommandCLSE: | 608 case AdbMessage::kCommandCLSE: |
612 { | 609 { |
613 AndroidUsbSockets::iterator it = sockets_.find(message->arg1); | 610 AndroidUsbSockets::iterator it = sockets_.find(message->arg1); |
614 if (it != sockets_.end()) | 611 if (it != sockets_.end()) |
615 it->second->HandleIncoming(std::move(message)); | 612 it->second->HandleIncoming(std::move(message)); |
616 } | 613 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 BrowserThread::PostTask( | 662 BrowserThread::PostTask( |
666 BrowserThread::UI, FROM_HERE, | 663 BrowserThread::UI, FROM_HERE, |
667 base::Bind(&ReleaseInterface, usb_handle, interface_id_)); | 664 base::Bind(&ReleaseInterface, usb_handle, interface_id_)); |
668 } | 665 } |
669 | 666 |
670 void AndroidUsbDevice::SocketDeleted(uint32_t socket_id) { | 667 void AndroidUsbDevice::SocketDeleted(uint32_t socket_id) { |
671 DCHECK(task_runner_->BelongsToCurrentThread()); | 668 DCHECK(task_runner_->BelongsToCurrentThread()); |
672 | 669 |
673 sockets_.erase(socket_id); | 670 sockets_.erase(socket_id); |
674 } | 671 } |
OLD | NEW |