| // 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.guest; |
| |
| struct EnvironmentInfo { |
| // A globally unique identifier for this environment. |
| uint32 id; |
| |
| // The string provided to |EnvironmentManager.Create|. |
| string label; |
| |
| // List of guests running in this environment. |
| vector<InstanceInfo> instances; |
| }; |
| |
| struct InstanceInfo { |
| // Context ID to use to address this guest for vsocket communications. This |
| // can also be used to uniquely identify a guest within an environment. |
| uint32 cid; |
| |
| // The |label| string originally provided in the |LaunchInfo| structure |
| // or, if it was the null, the |url| |
| string label; |
| }; |
| |
| [Discoverable] |
| interface EnvironmentManager { |
| // Create a new environment in which guests can be launched. |
| // |
| // The |label| is a string that is used for diagnostic purposes, such as |
| // naming resources and dumping debug info. |
| Create(string? label, request<EnvironmentController> env); |
| |
| // Query for existing guest environments. |
| // |
| // This is intended for diagnostic purposes only. |
| List() -> (vector<EnvironmentInfo> env_infos); |
| |
| // Connect to a currently running guest environment identified by |id|. The |
| // |id| can be found via a call to |List|. |
| // |
| // This is intended for diagnostic purposes only. |
| Connect(uint32 id, request<EnvironmentController> env); |
| }; |