// Copyright 2016 The Chromium 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.sys;

// An interface for controlling an environment.
//
// Closing this interface implicitly kills the controlled environment unless
// the |Detach| method has been called.
//
// If the environment is destroyed, this interface will be closed.
//
// Typically obtained via |Environment.CreateNestedEnvironment|.
interface EnvironmentController {
    // Terminates the environment.
    //
    // When an |Environment| is terminated, all applications launched
    // in the environment (and in all transitively nested environments) are also
    // killed.
    Kill() -> ();

    // Decouples the lifetime of the environment from this controller.
    //
    // After calling |Detach|, the environment will not be implicitly killed when
    // this interface is closed.
    Detach();

    // Event that is triggered when the environment is created.
    -> OnCreated();
};
