From 814ee1339dadd14d606b6c726cffffbe630b2547 Mon Sep 17 00:00:00 2001 From: Taylor Cramer <cramertj@google.com> Date: Wed, 17 Apr 2019 00:10:37 +0000 Subject: [PATCH] [rust][terminal] terminal to fuchsia-component Change-Id: Id9c2406b7fb715b5bbb91ab999be687692569e29 --- garnet/bin/terminal/BUILD.gn | 2 +- garnet/bin/terminal/src/app.rs | 8 ++++---- garnet/bin/terminal/src/main.rs | 14 +++++--------- garnet/bin/terminal/src/view_controller.rs | 2 +- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/garnet/bin/terminal/BUILD.gn b/garnet/bin/terminal/BUILD.gn index 68d76ec7d87..1c5d4bfea51 100644 --- a/garnet/bin/terminal/BUILD.gn +++ b/garnet/bin/terminal/BUILD.gn @@ -18,8 +18,8 @@ rustc_binary("bin") { "//garnet/bin/terminal/third_party/term-model", "//garnet/public/lib/fidl/rust/fidl", "//garnet/public/rust/carnelian", - "//garnet/public/rust/fuchsia-app", "//garnet/public/rust/fuchsia-async", + "//garnet/public/rust/fuchsia-component", "//garnet/public/rust/fuchsia-scenic", "//garnet/public/rust/fuchsia-zircon", "//garnet/public/rust/shared-buffer", diff --git a/garnet/bin/terminal/src/app.rs b/garnet/bin/terminal/src/app.rs index 88323030c2c..983e51e1c20 100644 --- a/garnet/bin/terminal/src/app.rs +++ b/garnet/bin/terminal/src/app.rs @@ -1,12 +1,12 @@ use crate::view_controller::{FontFacePtr, ViewController, ViewControllerPtr}; use carnelian::FontFace; use failure::Error; -use fidl::endpoints::{create_endpoints, create_proxy, RequestStream}; +use fidl::endpoints::{create_endpoints, create_proxy}; use fidl_fuchsia_ui_app::{ViewProviderRequest, ViewProviderRequestStream}; use fidl_fuchsia_ui_scenic::{ScenicMarker, ScenicProxy}; use fidl_fuchsia_ui_views::ViewToken; -use fuchsia_app::client::connect_to_service; use fuchsia_async as fasync; +use fuchsia_component::client::connect_to_service; use fuchsia_scenic::Session; use futures::{TryFutureExt, TryStreamExt}; use parking_lot::Mutex; @@ -33,10 +33,10 @@ impl App { }))) } - pub fn spawn_view_provider_server(app: &AppPtr, chan: fasync::Channel) { + pub fn spawn_view_provider_server(app: &AppPtr, stream: ViewProviderRequestStream) { let app = app.clone(); fasync::spawn( - ViewProviderRequestStream::from_channel(chan) + stream .try_for_each(move |req| { let ViewProviderRequest::CreateView { token, .. } = req; let view_token = ViewToken { value: token }; diff --git a/garnet/bin/terminal/src/main.rs b/garnet/bin/terminal/src/main.rs index 9eb1c9f1512..cc8e527286c 100644 --- a/garnet/bin/terminal/src/main.rs +++ b/garnet/bin/terminal/src/main.rs @@ -10,9 +10,8 @@ mod view_controller; use app::App; use failure::{Error, ResultExt}; -use fidl::endpoints::ServiceMarker; -use fidl_fuchsia_ui_app::ViewProviderMarker; use fuchsia_async as fasync; +use futures::StreamExt; use std::env; fn main() -> Result<(), Error> { @@ -21,13 +20,10 @@ fn main() -> Result<(), Error> { let mut executor = fasync::Executor::new().context("Error creating executor")?; let app = App::new()?; - let fut = fuchsia_app::server::ServicesServer::new() - .add_service((ViewProviderMarker::NAME, move |chan| { - App::spawn_view_provider_server(&app, chan) - })) - .start() - .context("Error starting view provider server")?; + let mut fs = fuchsia_component::server::ServiceFs::new_local(); + fs.dir("public").add_fidl_service(|stream| App::spawn_view_provider_server(&app, stream)); + fs.take_and_serve_directory_handle()?; - executor.run_singlethreaded(fut)?; + let () = executor.run_singlethreaded(fs.collect()); Ok(()) } diff --git a/garnet/bin/terminal/src/view_controller.rs b/garnet/bin/terminal/src/view_controller.rs index 4384f3a3d3d..4a927041930 100644 --- a/garnet/bin/terminal/src/view_controller.rs +++ b/garnet/bin/terminal/src/view_controller.rs @@ -10,8 +10,8 @@ use fidl_fuchsia_ui_input::{ }; use fidl_fuchsia_ui_scenic::{self as scenic, SessionListenerMarker, SessionListenerRequest}; use fidl_fuchsia_ui_views::ViewToken; -use fuchsia_app::client::connect_to_service; use fuchsia_async as fasync; +use fuchsia_component::client::connect_to_service; use fuchsia_scenic::{EntityNode, HostImageCycler, SessionPtr, View}; use futures::{FutureExt, TryFutureExt, TryStreamExt}; use parking_lot::Mutex; -- GitLab