blob: 975385cbb595bed8baf5b757c73048c0f4904fff [file] [log] [blame]
// 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.
library fuchsia.modular;
/// State used to notify about state transitions of a Module
/// instance. This is very similar to the StoryState, however it's not entirely
/// the same and hence a separate type. A module cannot have an INITIAL state,
/// because it's started as soon as it is created, and it gets deleted as soon as
/// it reaches the STOPPED state, whileas a story can be restarted.
///
/// Currently possible state transitions (and the events that cause
/// them) are:
///
/// -> RUNNING ModuleContext.AddModuleToStory() or
/// ModuleContext.EmbedModule() or
/// StoryController.AddModule()
/// RUNNING -> STOPPED ModuleController.Stop() or StoryController.Stop()
/// RUNNING -> ERROR application exits
type ModuleState = strict enum {
/// Module instance was created.
RUNNING = 2;
/// Module instance is stopped after Module.Stop(). No further transitions are
/// to be expected.
STOPPED = 4;
/// Connection to the Module instance was closed without Stop() request. No
/// further transitions are to be expected.
ERROR = 5;
};