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

Unified Diff: device/serial/serial_connection_factory.cc

Issue 488363002: Implement the host side of serial connection I/O on data pipe. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix win x64 build Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/serial/serial_connection_factory.h ('k') | device/serial/serial_connection_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/serial/serial_connection_factory.cc
diff --git a/device/serial/serial_connection_factory.cc b/device/serial/serial_connection_factory.cc
index 7d7e04f93e76db534b98e244d0f4048d8e6c3c86..386286318305d49c53011a15739ccf7cbfadd4af 100644
--- a/device/serial/serial_connection_factory.cc
+++ b/device/serial/serial_connection_factory.cc
@@ -35,7 +35,9 @@ class SerialConnectionFactory::ConnectTask
ConnectTask(scoped_refptr<SerialConnectionFactory> factory,
const std::string& path,
serial::ConnectionOptionsPtr options,
- mojo::InterfaceRequest<serial::Connection> connection_request);
+ mojo::InterfaceRequest<serial::Connection> connection_request,
+ mojo::InterfaceRequest<serial::DataSink> sink,
+ mojo::InterfaceRequest<serial::DataSource> source);
void Run();
private:
@@ -48,6 +50,8 @@ class SerialConnectionFactory::ConnectTask
const std::string path_;
serial::ConnectionOptionsPtr options_;
mojo::InterfaceRequest<serial::Connection> connection_request_;
+ mojo::InterfaceRequest<serial::DataSink> sink_;
+ mojo::InterfaceRequest<serial::DataSource> source_;
scoped_refptr<SerialIoHandler> io_handler_;
DISALLOW_COPY_AND_ASSIGN(ConnectTask);
@@ -63,9 +67,15 @@ SerialConnectionFactory::SerialConnectionFactory(
void SerialConnectionFactory::CreateConnection(
const std::string& path,
serial::ConnectionOptionsPtr options,
- mojo::InterfaceRequest<serial::Connection> connection_request) {
- scoped_refptr<ConnectTask> task(
- new ConnectTask(this, path, options.Pass(), connection_request.Pass()));
+ mojo::InterfaceRequest<serial::Connection> connection_request,
+ mojo::InterfaceRequest<serial::DataSink> sink,
+ mojo::InterfaceRequest<serial::DataSource> source) {
+ scoped_refptr<ConnectTask> task(new ConnectTask(this,
+ path,
+ options.Pass(),
+ connection_request.Pass(),
+ sink.Pass(),
+ source.Pass()));
task->Run();
}
@@ -76,11 +86,15 @@ SerialConnectionFactory::ConnectTask::ConnectTask(
scoped_refptr<SerialConnectionFactory> factory,
const std::string& path,
serial::ConnectionOptionsPtr options,
- mojo::InterfaceRequest<serial::Connection> connection_request)
+ mojo::InterfaceRequest<serial::Connection> connection_request,
+ mojo::InterfaceRequest<serial::DataSink> sink,
+ mojo::InterfaceRequest<serial::DataSource> source)
: factory_(factory),
path_(path),
options_(options.Pass()),
- connection_request_(connection_request.Pass()) {
+ connection_request_(connection_request.Pass()),
+ sink_(sink.Pass()),
+ source_(source.Pass()) {
}
void SerialConnectionFactory::ConnectTask::Run() {
@@ -108,7 +122,9 @@ void SerialConnectionFactory::ConnectTask::OnConnected(bool success) {
FillDefaultConnectionOptions(options_.get());
if (!io_handler_->ConfigurePort(*options_))
return;
- mojo::BindToRequest(new SerialConnection(io_handler_), &connection_request_);
+ mojo::BindToRequest(
+ new SerialConnection(io_handler_, sink_.Pass(), source_.Pass()),
+ &connection_request_);
}
} // namespace device
« no previous file with comments | « device/serial/serial_connection_factory.h ('k') | device/serial/serial_connection_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698