| 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
|
|
|