| 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..9ed7fdb1aa2b67645d7f432f59f54620405ad351 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,32 +21,31 @@ 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 ShutdownForTesting();
|
|
|
| - // 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:
|
| friend class PowerMonitorSource;
|
|
|
| - PowerMonitorSource* Source();
|
| -
|
| - void NotifyPowerStateChange(bool battery_in_use);
|
| - void NotifySuspend();
|
| - void NotifyResume();
|
| -
|
| - scoped_refptr<ObserverListThreadSafe<PowerObserver> > observers_;
|
| - scoped_ptr<PowerMonitorSource> source_;
|
| + static Lock* GetLock();
|
| + // Must manually acquire lock before calling any of the following functions.
|
| + static bool IsInitializedLocked();
|
| + static PowerMonitorSource* GetSource();
|
| + static void NotifyPowerStateChange(bool battery_in_use);
|
| + static void NotifySuspend();
|
| + static void NotifyResume();
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PowerMonitor);
|
| };
|
|
|