1/*
2** Copyright 2017, The Android Open Source Project
3**
4** Licensed under the Apache License, Version 2.0 (the "License");
5** you may not use this file except in compliance with the License.
6** You may obtain a copy of the License at
7**
8**     http://www.apache.org/licenses/LICENSE-2.0
9**
10** Unless required by applicable law or agreed to in writing, software
11** distributed under the License is distributed on an "AS IS" BASIS,
12** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13** See the License for the specific language governing permissions and
14** limitations under the License.
15*/
16
17package android.os;
18
19import android.os.IThermalEventListener;
20import android.os.Temperature;
21
22/**
23 * {@hide}
24 */
25interface IThermalService {
26    /**
27      * Register a listener for thermal events.
28      * @param listener the IThermalEventListener to be notified.
29      * {@hide}
30      */
31    void registerThermalEventListener(in IThermalEventListener listener);
32    /**
33      * Unregister a previously-registered listener for thermal events.
34      * @param listener the IThermalEventListener to no longer be notified.
35      * {@hide}
36      */
37    void unregisterThermalEventListener(in IThermalEventListener listener);
38    /**
39      * Send a thermal throttling start/stop notification to all listeners.
40      * @param temperature the temperature at which the event was generated.
41      * {@hide}
42      */
43    oneway void notifyThrottling(
44        in boolean isThrottling, in Temperature temperature);
45    /**
46      * Return whether system performance is currently thermal throttling.
47      * @return true if thermal throttling is currently in effect
48      * {@hide}
49      */
50    boolean isThrottling();
51}
52