| // Copyright 2021 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. |
| |
| library fuchsia.sys2; |
| |
| using fuchsia.component; |
| |
| /// A protocol exposed in a component's hub to allow component tools |
| /// to resolve, bind, stop component manifests. |
| [Discoverable] |
| protocol LifecycleController { |
| /// Resolves the component designated by the provided relative moniker |
| /// relative to the component to which the protocol is scoped. |
| /// |
| /// The function returns once the component successfully resolves, or the |
| /// operation fails. |
| Resolve(string:fuchsia.component.MAX_MONIKER_LENGTH moniker) -> () error fuchsia.component.Error; |
| |
| /// Binds to the component designated by the provided relative moniker |
| /// relative to the component to which the protocol is scoped. |
| /// |
| /// The function returns once the component is successfully bound, or the |
| /// operation fails. |
| Bind(string:fuchsia.component.MAX_MONIKER_LENGTH moniker) -> () error fuchsia.component.Error; |
| |
| /// Stops the component designated by the provided relative moniker |
| /// relative to the component to which the protocol is scoped. |
| /// |
| /// The function returns once the component successfully stops, or the |
| /// operation fails. |
| Stop(string:fuchsia.component.MAX_MONIKER_LENGTH moniker) -> () error fuchsia.component.Error; |
| }; |