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

Side by Side Diff: device/serial/serial_service_impl.cc

Issue 2326913003: Privatize StrongBinding lifetime management (Closed)
Patch Set: rebase Created 4 years, 3 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 | « device/serial/serial_service_impl.h ('k') | device/serial/serial_service_unittest.cc » ('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 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 "device/serial/serial_service_impl.h" 5 #include "device/serial/serial_service_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/location.h" 13 #include "base/location.h"
14 #include "device/serial/serial_io_handler.h" 14 #include "device/serial/serial_io_handler.h"
15 #include "mojo/public/cpp/bindings/strong_binding.h"
15 16
16 namespace device { 17 namespace device {
17 18
18 SerialServiceImpl::SerialServiceImpl( 19 SerialServiceImpl::SerialServiceImpl(
19 scoped_refptr<SerialConnectionFactory> connection_factory, 20 scoped_refptr<SerialConnectionFactory> connection_factory)
20 mojo::InterfaceRequest<serial::SerialService> request) 21 : connection_factory_(connection_factory) {}
21 : connection_factory_(connection_factory),
22 binding_(this, std::move(request)) {}
23 22
24 SerialServiceImpl::SerialServiceImpl( 23 SerialServiceImpl::SerialServiceImpl(
25 scoped_refptr<SerialConnectionFactory> connection_factory, 24 scoped_refptr<SerialConnectionFactory> connection_factory,
26 std::unique_ptr<SerialDeviceEnumerator> device_enumerator, 25 std::unique_ptr<SerialDeviceEnumerator> device_enumerator)
27 mojo::InterfaceRequest<serial::SerialService> request)
28 : device_enumerator_(std::move(device_enumerator)), 26 : device_enumerator_(std::move(device_enumerator)),
29 connection_factory_(connection_factory), 27 connection_factory_(connection_factory) {}
30 binding_(this, std::move(request)) {}
31 28
32 SerialServiceImpl::~SerialServiceImpl() { 29 SerialServiceImpl::~SerialServiceImpl() {}
33 }
34 30
35 // static 31 // static
36 void SerialServiceImpl::Create( 32 void SerialServiceImpl::Create(
37 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 33 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
38 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, 34 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
39 mojo::InterfaceRequest<serial::SerialService> request) { 35 mojo::InterfaceRequest<serial::SerialService> request) {
40 new SerialServiceImpl( 36 mojo::MakeStrongBinding(
41 new SerialConnectionFactory( 37 base::MakeUnique<SerialServiceImpl>(new SerialConnectionFactory(
42 base::Bind(SerialIoHandler::Create, 38 base::Bind(SerialIoHandler::Create,
43 base::ThreadTaskRunnerHandle::Get(), ui_task_runner), 39 base::ThreadTaskRunnerHandle::Get(), ui_task_runner),
44 io_task_runner), 40 io_task_runner)),
45 std::move(request)); 41 std::move(request));
46 } 42 }
47 43
48 // static 44 // static
49 void SerialServiceImpl::CreateOnMessageLoop( 45 void SerialServiceImpl::CreateOnMessageLoop(
50 scoped_refptr<base::SingleThreadTaskRunner> task_runner, 46 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
51 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 47 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
52 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner, 48 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
53 mojo::InterfaceRequest<serial::SerialService> request) { 49 mojo::InterfaceRequest<serial::SerialService> request) {
54 task_runner->PostTask(FROM_HERE, 50 task_runner->PostTask(FROM_HERE,
(...skipping 29 matching lines...) Expand all
84 mojo::Array<serial::DeviceInfoPtr> devices( 80 mojo::Array<serial::DeviceInfoPtr> devices(
85 GetDeviceEnumerator()->GetDevices()); 81 GetDeviceEnumerator()->GetDevices());
86 for (size_t i = 0; i < devices.size(); i++) { 82 for (size_t i = 0; i < devices.size(); i++) {
87 if (path == devices[i]->path) 83 if (path == devices[i]->path)
88 return true; 84 return true;
89 } 85 }
90 return false; 86 return false;
91 } 87 }
92 88
93 } // namespace device 89 } // namespace device
OLDNEW
« no previous file with comments | « device/serial/serial_service_impl.h ('k') | device/serial/serial_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698