Index: base/power_monitor/power_observer.h |
diff --git a/base/power_monitor/power_observer.h b/base/power_monitor/power_observer.h |
index 6be70bba9d5368dfa0cf7a4f145247a1334430ec..e7d40a3a6d5a3eb07e1bb45632d236eea3858d21 100644 |
--- a/base/power_monitor/power_observer.h |
+++ b/base/power_monitor/power_observer.h |
@@ -7,14 +7,20 @@ |
#include "base/base_export.h" |
#include "base/compiler_specific.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "base/threading/thread_checker.h" |
namespace base { |
class BASE_EXPORT PowerObserver { |
+ friend class PowerMonitor; |
+ |
public: |
+ PowerObserver(); |
+ |
// Notification of a change in power status of the computer, such |
// as from switching between battery and A/C power. |
- virtual void OnPowerStateChange(bool on_battery_power) {}; |
+ virtual void OnPowerStateChange(bool on_battery_power) {} |
// Notification that the system is suspending. |
virtual void OnSuspend() {} |
@@ -23,7 +29,12 @@ class BASE_EXPORT PowerObserver { |
virtual void OnResume() {} |
protected: |
- virtual ~PowerObserver() {} |
+ virtual ~PowerObserver(); |
+ |
+ private: |
+ // Allows PowerMonitor to ensure this observer is added and removed |
+ // from the same thread, which is required by the ObserverListThreadSafe. |
+ scoped_ptr<base::ThreadChecker> power_monitor_thread_checker_; |
}; |
} // namespace base |