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

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

Issue 873903002: Set serial connection parameters immediately on connect. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a comment explaing the "set" notation. Created 5 years, 10 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 | « no previous file | device/serial/serial_io_handler.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 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_connection_factory.h" 5 #include "device/serial/serial_connection_factory.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "device/serial/serial_connection.h" 9 #include "device/serial/serial_connection.h"
10 #include "device/serial/serial_io_handler.h" 10 #include "device/serial/serial_io_handler.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 serial::ConnectionOptionsPtr options, 88 serial::ConnectionOptionsPtr options,
89 mojo::InterfaceRequest<serial::Connection> connection_request, 89 mojo::InterfaceRequest<serial::Connection> connection_request,
90 mojo::InterfaceRequest<serial::DataSink> sink, 90 mojo::InterfaceRequest<serial::DataSink> sink,
91 mojo::InterfaceRequest<serial::DataSource> source) 91 mojo::InterfaceRequest<serial::DataSource> source)
92 : factory_(factory), 92 : factory_(factory),
93 path_(path), 93 path_(path),
94 options_(options.Pass()), 94 options_(options.Pass()),
95 connection_request_(connection_request.Pass()), 95 connection_request_(connection_request.Pass()),
96 sink_(sink.Pass()), 96 sink_(sink.Pass()),
97 source_(source.Pass()) { 97 source_(source.Pass()) {
98 if (!options_) {
99 options_ = serial::ConnectionOptions::New();
100 }
101 FillDefaultConnectionOptions(options_.get());
98 } 102 }
99 103
100 void SerialConnectionFactory::ConnectTask::Run() { 104 void SerialConnectionFactory::ConnectTask::Run() {
101 factory_->connect_message_loop_->PostTask( 105 factory_->connect_message_loop_->PostTask(
102 FROM_HERE, 106 FROM_HERE,
103 base::Bind(&SerialConnectionFactory::ConnectTask::Connect, this)); 107 base::Bind(&SerialConnectionFactory::ConnectTask::Connect, this));
104 } 108 }
105 109
106 SerialConnectionFactory::ConnectTask::~ConnectTask() { 110 SerialConnectionFactory::ConnectTask::~ConnectTask() {
107 } 111 }
108 112
109 void SerialConnectionFactory::ConnectTask::Connect() { 113 void SerialConnectionFactory::ConnectTask::Connect() {
110 io_handler_ = factory_->io_handler_factory_.Run(); 114 io_handler_ = factory_->io_handler_factory_.Run();
111 io_handler_->Open( 115 io_handler_->Open(
112 path_, 116 path_, *options_,
113 base::Bind(&SerialConnectionFactory::ConnectTask::OnConnected, this)); 117 base::Bind(&SerialConnectionFactory::ConnectTask::OnConnected, this));
114 } 118 }
115 119
116 void SerialConnectionFactory::ConnectTask::OnConnected(bool success) { 120 void SerialConnectionFactory::ConnectTask::OnConnected(bool success) {
117 DCHECK(io_handler_.get()); 121 DCHECK(io_handler_.get());
118 if (!success) 122 if (!success) {
119 return; 123 return;
120 if (!options_) 124 }
121 options_ = serial::ConnectionOptions::New(); 125
122 FillDefaultConnectionOptions(options_.get());
123 if (!io_handler_->ConfigurePort(*options_))
124 return;
125 mojo::BindToRequest( 126 mojo::BindToRequest(
126 new SerialConnection(io_handler_, sink_.Pass(), source_.Pass()), 127 new SerialConnection(io_handler_, sink_.Pass(), source_.Pass()),
127 &connection_request_); 128 &connection_request_);
128 } 129 }
129 130
130 } // namespace device 131 } // namespace device
OLDNEW
« no previous file with comments | « no previous file | device/serial/serial_io_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698