diff --git a/garnet/bin/terminal/BUILD.gn b/garnet/bin/terminal/BUILD.gn index 68d76ec7d87f7efb9ca9f06cb617f6b74a4d8637..1c5d4bfea51af4c69d2f64d1f330f14f8082b285 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 88323030c2c028139e0de2a7fd5e2dd9258de6c8..983e51e1c20afb9e850c6adb37bb598067a45aed 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 9eb1c9f1512a0da0a8ee1d1b7cd4af555980aefe..cc8e527286c23c2969e672f20feb6df6cd7486b0 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 4384f3a3d3d897a0c37e117528150058edc02248..4a927041930f87af156ec165f05cb3bbb2a6769a 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;