blob: 27ac4877166b3575c73243c2fc4c2e37dfbcb41a [file] [log] [blame]
// Copyright 2020 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 test.thermal;
using fuchsia.thermal;
struct SubscriberInfo {
/// A value to indicate which type of subsystem an Actor connection represents.
fuchsia.thermal.ActorType actor_type;
/// The number of states (including 0) supported by this subscriber.
uint32 num_thermal_states;
};
/// This arbitrarily-chosen value is the maximum number of entries in the vector
/// `thermal_states_for_subscribers` returned by `GetSupportedThermalStates`.
const uint32 MAX_SUBSCRIBER_COUNT = 256;
/// test.thermal.Control
///
/// This protocol enables tests to manipulate thermal states via a test service.
/// A service would implement both this protocol and fuchsia::thermal::Controller.
/// It would be injected into the environment of the component under test. Once
/// thermal actors have subscribed, a test suite would retrieve the number of
/// subscribed thermal actors and their supported thermal states, and would
/// directly trigger state-change commands sent to subscribed actors.
[Discoverable]
protocol Control {
/// Retrieve the subscriber type and the number of thermal states supported by
/// each subscriber, sorted by time of subscription (from earliest to latest).
GetSubscriberInfo()
-> (vector<SubscriberInfo>:MAX_SUBSCRIBER_COUNT subscribers);
/// Send a thermal state change to the specified subscriber.
/// This method's completion occurs only after its internal
/// fuchsia.thermal.Agent.SetThermalState call has completed.
SetThermalState(uint32 subscriber, uint32 state) -> ();
};