| // Copyright 2018 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.storymodel; |
| |
| using fuchsia.modular; |
| |
| /// IMPORTANT: StoryModel must only contain field types that are cloneable. |
| /// |
| /// The `StoryModel` FIDL table is used to represent the state of a story. |
| /// `sessionmgr` keeps a separate `StoryModel` in memory for each running story, |
| /// and also persists changes to it onto storage. |
| table StoryModel { |
| /// The name of the story, set at story create time. |
| /// |
| /// Always set. Immutable. |
| 1: string:MAX_STORY_NAME_LENGTH name; |
| |
| /// An enum describing if the story is RUNNING, STOPPING, STOPPED. |
| /// |
| /// Always set. Defaults to StoryState::STOPPED. |
| 2: fuchsia.modular.StoryState runtime_state; |
| |
| /// An enum describing how the story should be displayed, when focused, |
| /// in the StoryShell. |
| /// |
| /// Always set. Defaults to StoryVisibilityState::DEFAULT. |
| 3: fuchsia.modular.StoryVisibilityState visibility_state; |
| |
| /// A list of modules present in the story. |
| /// |
| /// Always set. Defaults to an empty list. |
| 4: vector<ModuleModel>:MAX_MODULES_PER_STORY modules; |
| }; |
| |
| table ModuleModel { |
| /// The name of the module, set by the client that requested creation |
| /// of the module. The name uniquely identifies this module within |
| /// the story. |
| /// |
| /// Always set. Immutable. |
| 1: string:MAX_MODULE_NAME_LENGTH name; |
| }; |