blob: 64a7b81c744b5a5e0748f83592869299ba4c41f8 [file] [log] [blame]
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -07001/*
2 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 *
18 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
28 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070031/* Changes from Qualcomm Innovation Center are provided under the following license:
32
33Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
34SPDX-License-Identifier: BSD-3-Clause-Clear */
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070035
36#ifndef THERMAL_THERMAL_MONITOR_H__
37#define THERMAL_THERMAL_MONITOR_H__
38
39#include <thread>
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070040#include <aidl/android/hardware/thermal/BnThermal.h>
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070041
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070042namespace aidl {
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070043namespace android {
44namespace hardware {
45namespace thermal {
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070046
47using ueventMonitorCB = std::function<void(std::string sensor_name, int temp)>;
48
49class ThermalMonitor {
50 public:
51 ThermalMonitor(const ueventMonitorCB &inp_cb);
52 ~ThermalMonitor();
53
54 void parse_and_notify(char *inp_buf, ssize_t len);
55 bool stopPolling()
56 {
57 return monitor_shutdown;
58 }
59 void start();
60 private:
61 std::thread th;
62 bool monitor_shutdown;
63 ueventMonitorCB cb;
64};
65
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070066} // namespace thermal
67} // namespace hardware
68} // namespace android
Bavyasritha Alahari0a344f42023-04-26 17:16:51 -070069} // namespace aidl
Ram Chandrasekardac8f7d2020-06-10 12:23:28 -070070
71#endif // THERMAL_THERMAL_MONITOR_H__