| // 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 <src/modular/lib/lifecycle/cpp/lifecycle_impl.h> | 
 |  | 
 | namespace modular { | 
 |  | 
 | LifecycleImpl::LifecycleImpl(const std::shared_ptr<sys::OutgoingDirectory>& outgoing_services, | 
 |                              LifecycleImpl::Delegate* delegate) | 
 |     : delegate_(delegate), binding_(this) { | 
 |   outgoing_services->AddPublicService<fuchsia::modular::Lifecycle>( | 
 |       [this](fidl::InterfaceRequest<fuchsia::modular::Lifecycle> request) { | 
 |         binding_.Bind(std::move(request)); | 
 |       }); | 
 | } | 
 |  | 
 | // |fuchsia::modular::Lifecycle| | 
 | void LifecycleImpl::Terminate() { | 
 |   binding_.Unbind(); | 
 |   delegate_->Terminate(); | 
 | } | 
 |  | 
 | }  // namespace modular |