Index: base/system_monitor/system_monitor.cc |
diff --git a/base/system_monitor/system_monitor.cc b/base/system_monitor/system_monitor.cc |
index 5131fbf124c7689aeecba0783c727e9b5db89664..ed6a1c76b62687996a90f3b65e8dfc4536a5382f 100644 |
--- a/base/system_monitor/system_monitor.cc |
+++ b/base/system_monitor/system_monitor.cc |
@@ -19,7 +19,9 @@ static int kDelayedBatteryCheckMs = 10 * 1000; |
#endif // defined(ENABLE_BATTERY_MONITORING) |
SystemMonitor::SystemMonitor() |
- : observer_list_(new ObserverListThreadSafe<PowerObserver>()), |
+ : power_observer_list_(new ObserverListThreadSafe<PowerObserver>()), |
+ device_change_observer_list_( |
+ new ObserverListThreadSafe<DeviceChangeObserver>()), |
battery_in_use_(false), |
suspended_(false) { |
DCHECK(!g_system_monitor); |
@@ -77,28 +79,46 @@ void SystemMonitor::ProcessPowerMessage(PowerEvent event_id) { |
} |
} |
+void SystemMonitor::ProcessDeviceChange() { |
+ NotifyDeviceChange(); |
+} |
+ |
void SystemMonitor::AddObserver(PowerObserver* obs) { |
- observer_list_->AddObserver(obs); |
+ power_observer_list_->AddObserver(obs); |
} |
void SystemMonitor::RemoveObserver(PowerObserver* obs) { |
- observer_list_->RemoveObserver(obs); |
+ power_observer_list_->RemoveObserver(obs); |
+} |
+ |
+void SystemMonitor::AddObserver(DeviceChangeObserver* obs) { |
+ device_change_observer_list_->AddObserver(obs); |
+} |
+ |
+void SystemMonitor::RemoveObserver(DeviceChangeObserver* obs) { |
+ device_change_observer_list_->RemoveObserver(obs); |
+} |
+ |
+void SystemMonitor::NotifyDeviceChange() { |
+ DVLOG(1) << "DeviceChange"; |
+ device_change_observer_list_->Notify(&DeviceChangeObserver::OnDeviceChange); |
} |
void SystemMonitor::NotifyPowerStateChange() { |
DVLOG(1) << "PowerStateChange: " << (BatteryPower() ? "On" : "Off") |
<< " battery"; |
- observer_list_->Notify(&PowerObserver::OnPowerStateChange, BatteryPower()); |
+ power_observer_list_->Notify(&PowerObserver::OnPowerStateChange, |
+ BatteryPower()); |
} |
void SystemMonitor::NotifySuspend() { |
DVLOG(1) << "Power Suspending"; |
- observer_list_->Notify(&PowerObserver::OnSuspend); |
+ power_observer_list_->Notify(&PowerObserver::OnSuspend); |
} |
void SystemMonitor::NotifyResume() { |
DVLOG(1) << "Power Resuming"; |
- observer_list_->Notify(&PowerObserver::OnResume); |
+ power_observer_list_->Notify(&PowerObserver::OnResume); |
} |
void SystemMonitor::BatteryCheck() { |