| // 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. |
| |
| // DEPRECATED: This library is being replaced. Do not add new dependencies |
| // to this interface. |
| |
| library fuchsia.inspect.deprecated; |
| |
| const uint16 MAX_KEY_LENGTH = 1024; |
| const uint16 MAX_VALUE_LENGTH = 16384; |
| const uint16 MAX_VALUE_COUNT = 256; |
| const uint16 MAX_CHILDREN_COUNT = 256; |
| |
| union PropertyValue { |
| 1: string:MAX_VALUE_LENGTH str; |
| 2: vector<uint8>:MAX_VALUE_LENGTH bytes; |
| }; |
| |
| // A string property on an `Object`. Consisting of a key and value. |
| struct Property { |
| string:MAX_KEY_LENGTH key; |
| PropertyValue value; |
| }; |
| |
| // The value of a metric is one of these numeric types. |
| union MetricValue { |
| 1: int64 int_value; |
| 2: uint64 uint_value; |
| 3: float64 double_value; |
| }; |
| |
| // A Metric is a string key and the associated numeric value. |
| struct Metric { |
| string:MAX_KEY_LENGTH key; |
| MetricValue value; |
| }; |
| |
| // An `Object` has a name and 0 or more properties and metrics. |
| struct Object { |
| string:MAX_KEY_LENGTH name; |
| vector<Property>:MAX_VALUE_COUNT properties; |
| vector<Metric>:MAX_VALUE_COUNT metrics; |
| }; |
| |
| // The `Inspect` interface provides a point for Components to expose |
| // structured Objects for inspection. An Object may have 0 or more children. |
| [Discoverable] |
| protocol Inspect { |
| ReadData() -> (Object object); |
| ListChildren() -> (vector<string:MAX_KEY_LENGTH>:MAX_CHILDREN_COUNT children_names); |
| // Open a child of this Object by name. |
| // The name should match what is returned by ListChildren. |
| OpenChild(string:MAX_KEY_LENGTH child_name, request<Inspect> child_channel) -> (bool success); |
| }; |