1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// Copyright 2013 The Chromium Authors. All rights reserved.
2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// Use of this source code is governed by a BSD-style license that can be
3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// found in the LICENSE file.
4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant#ifndef BASE_POWER_MONITOR_POWER_OBSERVER_H_
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant#define BASE_POWER_MONITOR_POWER_OBSERVER_H_
7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "base/base_export.h"
9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "base/compiler_specific.h"
10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantnamespace base {
12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantclass BASE_EXPORT PowerObserver {
14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant public:
15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  // Notification of a change in power status of the computer, such
16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  // as from switching between battery and A/C power.
17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  virtual void OnPowerStateChange(bool on_battery_power) {};
18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  // Notification that the system is suspending.
2083e2c4d877fe2d7793868b1c6a5d9525a7c4d431Marshall Clow  virtual void OnSuspend() {}
21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  // Notification that the system is resuming.
23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  virtual void OnResume() {}
24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant protected:
26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant  virtual ~PowerObserver() {}
27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant};
28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant}  // namespace base
30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif  // BASE_POWER_MONITOR_POWER_OBSERVER_H_
32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant