| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "garnet/bin/ui/sketchy/app.h" |
| |
| namespace sketchy_service { |
| |
| App::App(async::Loop* loop, escher::EscherWeakPtr weak_escher) |
| : loop_(loop), |
| context_(component::StartupContext::CreateFromStartupInfo()), |
| scenic_( |
| context_->ConnectToEnvironmentService<fuchsia::ui::scenic::Scenic>()), |
| session_(std::make_unique<scenic::Session>(scenic_.get())), |
| canvas_(std::make_unique<CanvasImpl>(loop_, session_.get(), |
| std::move(weak_escher))) { |
| context_->outgoing().AddPublicService(bindings_.GetHandler(canvas_.get())); |
| |
| session_->set_error_handler([this](zx_status_t status) { |
| FXL_LOG(INFO) << "Sketchy service lost connection to Session."; |
| loop_->Quit(); |
| }); |
| scenic_.set_error_handler([this](zx_status_t status) { |
| FXL_LOG(INFO) << "Sketchy service lost connection to Mozart."; |
| loop_->Quit(); |
| }); |
| } |
| |
| } // namespace sketchy_service |