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

Side by Side Diff: tools/android/forwarder2/device_listener.cc

Issue 1869503004: Convert //tools to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, change iwyu fixes for converted directories to include <memory> Created 4 years, 8 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
« no previous file with comments | « tools/android/forwarder2/device_listener.h ('k') | tools/android/forwarder2/forwarder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "tools/android/forwarder2/device_listener.h" 5 #include "tools/android/forwarder2/device_listener.h"
6 6
7 #include <memory>
7 #include <utility> 8 #include <utility>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
11 #include "base/callback.h" 12 #include "base/callback.h"
12 #include "base/logging.h" 13 #include "base/logging.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/single_thread_task_runner.h" 14 #include "base/single_thread_task_runner.h"
15 #include "base/thread_task_runner_handle.h" 15 #include "base/thread_task_runner_handle.h"
16 #include "tools/android/forwarder2/command.h" 16 #include "tools/android/forwarder2/command.h"
17 #include "tools/android/forwarder2/forwarder.h" 17 #include "tools/android/forwarder2/forwarder.h"
18 #include "tools/android/forwarder2/socket.h" 18 #include "tools/android/forwarder2/socket.h"
19 19
20 namespace forwarder2 { 20 namespace forwarder2 {
21 21
22 // static 22 // static
23 scoped_ptr<DeviceListener> DeviceListener::Create( 23 std::unique_ptr<DeviceListener> DeviceListener::Create(
24 scoped_ptr<Socket> host_socket, 24 std::unique_ptr<Socket> host_socket,
25 int listener_port, 25 int listener_port,
26 const ErrorCallback& error_callback) { 26 const ErrorCallback& error_callback) {
27 scoped_ptr<Socket> listener_socket(new Socket()); 27 std::unique_ptr<Socket> listener_socket(new Socket());
28 scoped_ptr<DeviceListener> device_listener; 28 std::unique_ptr<DeviceListener> device_listener;
29 if (!listener_socket->BindTcp("", listener_port)) { 29 if (!listener_socket->BindTcp("", listener_port)) {
30 LOG(ERROR) << "Device could not bind and listen to local port " 30 LOG(ERROR) << "Device could not bind and listen to local port "
31 << listener_port; 31 << listener_port;
32 SendCommand(command::BIND_ERROR, listener_port, host_socket.get()); 32 SendCommand(command::BIND_ERROR, listener_port, host_socket.get());
33 return device_listener; 33 return device_listener;
34 } 34 }
35 // In case the |listener_port_| was zero, GetPort() will return the 35 // In case the |listener_port_| was zero, GetPort() will return the
36 // currently (non-zero) allocated port for this socket. 36 // currently (non-zero) allocated port for this socket.
37 listener_port = listener_socket->GetPort(); 37 listener_port = listener_socket->GetPort();
38 SendCommand(command::BIND_SUCCESS, listener_port, host_socket.get()); 38 SendCommand(command::BIND_SUCCESS, listener_port, host_socket.get());
39 device_listener.reset(new DeviceListener(std::move(listener_socket), 39 device_listener.reset(new DeviceListener(std::move(listener_socket),
40 std::move(host_socket), 40 std::move(host_socket),
41 listener_port, error_callback)); 41 listener_port, error_callback));
42 return device_listener; 42 return device_listener;
43 } 43 }
44 44
45 DeviceListener::~DeviceListener() { 45 DeviceListener::~DeviceListener() {
46 DCHECK(deletion_task_runner_->RunsTasksOnCurrentThread()); 46 DCHECK(deletion_task_runner_->RunsTasksOnCurrentThread());
47 deletion_notifier_.Notify(); 47 deletion_notifier_.Notify();
48 } 48 }
49 49
50 void DeviceListener::Start() { 50 void DeviceListener::Start() {
51 thread_.Start(); 51 thread_.Start();
52 AcceptNextClientSoon(); 52 AcceptNextClientSoon();
53 } 53 }
54 54
55 void DeviceListener::SetAdbDataSocket(scoped_ptr<Socket> adb_data_socket) { 55 void DeviceListener::SetAdbDataSocket(std::unique_ptr<Socket> adb_data_socket) {
56 thread_.task_runner()->PostTask( 56 thread_.task_runner()->PostTask(
57 FROM_HERE, 57 FROM_HERE,
58 base::Bind(&DeviceListener::OnAdbDataSocketReceivedOnInternalThread, 58 base::Bind(&DeviceListener::OnAdbDataSocketReceivedOnInternalThread,
59 base::Unretained(this), base::Passed(&adb_data_socket))); 59 base::Unretained(this), base::Passed(&adb_data_socket)));
60 } 60 }
61 61
62 DeviceListener::DeviceListener(scoped_ptr<Socket> listener_socket, 62 DeviceListener::DeviceListener(std::unique_ptr<Socket> listener_socket,
63 scoped_ptr<Socket> host_socket, 63 std::unique_ptr<Socket> host_socket,
64 int port, 64 int port,
65 const ErrorCallback& error_callback) 65 const ErrorCallback& error_callback)
66 : self_deleter_helper_(this, error_callback), 66 : self_deleter_helper_(this, error_callback),
67 listener_socket_(std::move(listener_socket)), 67 listener_socket_(std::move(listener_socket)),
68 host_socket_(std::move(host_socket)), 68 host_socket_(std::move(host_socket)),
69 listener_port_(port), 69 listener_port_(port),
70 deletion_task_runner_(base::ThreadTaskRunnerHandle::Get()), 70 deletion_task_runner_(base::ThreadTaskRunnerHandle::Get()),
71 thread_("DeviceListener") { 71 thread_("DeviceListener") {
72 CHECK(host_socket_.get()); 72 CHECK(host_socket_.get());
73 DCHECK(deletion_task_runner_.get()); 73 DCHECK(deletion_task_runner_.get());
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } 109 }
110 // It can continue if the host forwarder could not connect to the host 110 // It can continue if the host forwarder could not connect to the host
111 // server but the control connection is still alive (no errors). The device 111 // server but the control connection is still alive (no errors). The device
112 // acknowledged that (above), and it can re-try later. 112 // acknowledged that (above), and it can re-try later.
113 AcceptNextClientSoon(); 113 AcceptNextClientSoon();
114 return; 114 return;
115 } 115 }
116 } 116 }
117 117
118 void DeviceListener::OnAdbDataSocketReceivedOnInternalThread( 118 void DeviceListener::OnAdbDataSocketReceivedOnInternalThread(
119 scoped_ptr<Socket> adb_data_socket) { 119 std::unique_ptr<Socket> adb_data_socket) {
120 DCHECK(adb_data_socket); 120 DCHECK(adb_data_socket);
121 SendCommand(command::ADB_DATA_SOCKET_SUCCESS, listener_port_, 121 SendCommand(command::ADB_DATA_SOCKET_SUCCESS, listener_port_,
122 host_socket_.get()); 122 host_socket_.get());
123 forwarders_manager_.CreateAndStartNewForwarder(std::move(device_data_socket_), 123 forwarders_manager_.CreateAndStartNewForwarder(std::move(device_data_socket_),
124 std::move(adb_data_socket)); 124 std::move(adb_data_socket));
125 AcceptNextClientSoon(); 125 AcceptNextClientSoon();
126 } 126 }
127 127
128 void DeviceListener::OnInternalThreadError() { 128 void DeviceListener::OnInternalThreadError() {
129 self_deleter_helper_.MaybeSelfDeleteSoon(); 129 self_deleter_helper_.MaybeSelfDeleteSoon();
130 } 130 }
131 131
132 } // namespace forwarder 132 } // namespace forwarder
OLDNEW
« no previous file with comments | « tools/android/forwarder2/device_listener.h ('k') | tools/android/forwarder2/forwarder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698