| Index: base/power_monitor/power_monitor.h
|
| diff --git a/base/power_monitor/power_monitor.h b/base/power_monitor/power_monitor.h
|
| index 4acb3bf122dba93633a1201631063810ef3e9d5d..712b6b3cd89baeb1341cd8caf7906a0f1d439115 100644
|
| --- a/base/power_monitor/power_monitor.h
|
| +++ b/base/power_monitor/power_monitor.h
|
| @@ -10,6 +10,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/observer_list_threadsafe.h"
|
| #include "base/power_monitor/power_observer.h"
|
| +#include "base/synchronization/lock.h"
|
|
|
| namespace base {
|
|
|
| @@ -20,24 +21,35 @@ class PowerMonitorSource;
|
| class BASE_EXPORT PowerMonitor {
|
| public:
|
| // Takes ownership of |source|.
|
| - explicit PowerMonitor(scoped_ptr<PowerMonitorSource> source);
|
| - ~PowerMonitor();
|
| + static void Initialize(scoped_ptr<PowerMonitorSource> source);
|
| + static void Shutdown();
|
|
|
| - // Get the process-wide PowerMonitor (if not present, returns NULL).
|
| - static PowerMonitor* Get();
|
| + // Has the PowerMonitor already been initialized?
|
| + static bool IsInitialized();
|
|
|
| // Add and remove an observer.
|
| // Can be called from any thread.
|
| // Must not be called from within a notification callback.
|
| - void AddObserver(PowerObserver* observer);
|
| - void RemoveObserver(PowerObserver* observer);
|
| + static bool AddObserver(PowerObserver* observer);
|
| + static bool RemoveObserver(PowerObserver* observer);
|
|
|
| // Is the computer currently on battery power.
|
| - bool IsOnBatteryPower();
|
| + static bool IsOnBatteryPower();
|
|
|
| private:
|
| + explicit PowerMonitor(scoped_ptr<PowerMonitorSource> source);
|
| + ~PowerMonitor();
|
| friend class PowerMonitorSource;
|
|
|
| + static Lock* GetSingletonLock();
|
| + // Must manually aqcuire the lock before calling
|
| + static PowerMonitor* GetSingleton();
|
| +
|
| + void AddObserverImpl(PowerObserver* observer);
|
| + void RemoveObserverImpl(PowerObserver* observer);
|
| + // Is the computer currently on battery power.
|
| + bool IsOnBatteryPowerImpl();
|
| +
|
| PowerMonitorSource* Source();
|
|
|
| void NotifyPowerStateChange(bool battery_in_use);
|
|
|