| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef DIAGNOSTICS_WILCO_DTC_SUPPORTD_TELEMETRY_POWERD_EVENT_SERVICE_H_ |
| #define DIAGNOSTICS_WILCO_DTC_SUPPORTD_TELEMETRY_POWERD_EVENT_SERVICE_H_ |
| |
| #include <base/observer_list_types.h> |
| |
| namespace diagnostics { |
| |
| class PowerdEventService { |
| public: |
| class Observer : public base::CheckedObserver { |
| public: |
| enum class PowerEventType { |
| // Energy consuming from external power source has been started. |
| kAcInsert, |
| // Energy consuming from external power source has been stopped. |
| kAcRemove, |
| // System has received suspend request. |
| kOsSuspend, |
| // System has completed suspend request. |
| kOsResume, |
| }; |
| |
| virtual ~Observer() = default; |
| |
| virtual void OnPowerdEvent(PowerEventType type) = 0; |
| }; |
| |
| virtual ~PowerdEventService() = default; |
| |
| virtual void AddObserver(Observer* observer) = 0; |
| virtual void RemoveObserver(Observer* observer) = 0; |
| }; |
| |
| } // namespace diagnostics |
| |
| #endif // DIAGNOSTICS_WILCO_DTC_SUPPORTD_TELEMETRY_POWERD_EVENT_SERVICE_H_ |