Chromium Code Reviews| Index: base/power_monitor/power_monitor_source.h |
| diff --git a/base/power_monitor/power_monitor_source.h b/base/power_monitor/power_monitor_source.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..eb8471c77eb20931c42f7342787b89bf7f6ed87f |
| --- /dev/null |
| +++ b/base/power_monitor/power_monitor_source.h |
| @@ -0,0 +1,57 @@ |
| +// Copyright 2013 The Chromium 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 BASE_POWER_MONITOR_POWER_MONITOR_SOURCE_H_ |
| +#define BASE_POWER_MONITOR_POWER_MONITOR_SOURCE_H_ |
| + |
| +#include "base/base_export.h" |
| +#include "base/basictypes.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "base/observer_list_threadsafe.h" |
| + |
| +namespace base { |
| + |
| +class PowerMonitor; |
| + |
| +// Communicates power state changes to the power monitor. |
| +class BASE_EXPORT PowerMonitorSource { |
| + public: |
| + PowerMonitorSource(); |
| + virtual ~PowerMonitorSource(); |
| + |
| + // Normalized list of power events. |
|
vandebo (ex-Chrome)
2013/06/26 21:40:33
nit: comment indent; and below.
|
| + enum PowerEvent { |
| + POWER_STATE_EVENT, // The Power status of the system has changed. |
| + SUSPEND_EVENT, // The system is being suspended. |
| + RESUME_EVENT // The system is being resumed. |
| + }; |
| + |
| + // Is the computer currently on battery power. Can be called on any thread. |
| + bool BatteryPower() const { |
| + // Using a lock here is not necessary for just a bool. |
| + return battery_in_use_; |
| + } |
| + |
| + void ProcessPowerEvent(PowerEvent event_id); |
|
vandebo (ex-Chrome)
2013/06/26 21:40:33
Since PowerMonitor::Source() is public, this has t
bajones
2013/06/26 22:37:22
I'm happy to do this, but I'd like to understand w
vandebo (ex-Chrome)
2013/06/26 22:50:12
One bug/flaw in previous versions of SystemMonitr/
|
| + |
| + protected: |
| + friend class PowerMonitor; |
| + |
| + void SetMonitor(PowerMonitor* monitor); |
|
vandebo (ex-Chrome)
2013/06/26 21:40:33
Do you need this method, or can it just use PowerM
|
| + |
| + // Platform-specific method to check whether the system is currently |
| + // running on battery power. Returns true if running on batteries, |
| + // false otherwise. |
| + virtual bool IsBatteryPower(); |
| + |
| + PowerMonitor* monitor_; |
| + bool battery_in_use_; |
| + bool suspended_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(PowerMonitorSource); |
| +}; |
| + |
| +} // namespace base |
| + |
| +#endif // BASE_POWER_MONITOR_POWER_MONITOR_SOURCE_H_ |