| // Copyright 2016 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.modular; |
| |
| /// This interface is used by the caller of ModuleContext.StartModule() to |
| /// control the started Module instance. |
| /// |
| /// Closing this connection doesn't affect its Module instance; it just |
| /// relinquishes the ability of the caller to control the Module instance. |
| protocol ModuleController { |
| /// Requests that this module become the focused module in the story. |
| Focus(); |
| |
| /// Requests that this module be hidden in the story. |
| Defocus(); |
| |
| /// Requests the Module instance to stop. The running Module component's |
| /// Lifecycle::Terminate() method is called, the instance is shut down and |
| /// state within the framework is cleaned up. |
| /// |
| /// The result callback is called once the Module's runtime has been torn down. |
| Stop() -> (); |
| |
| /// Called with the current state when it changes. |
| /// DEPRECATED: Do not use this. ModuleState is a framework-internal concept |
| /// and should not be exposed outside. |
| -> OnStateChange(ModuleState new_state); |
| }; |