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..28fc70bf2b42a1dd21dc04880ac17efec4ea55ab 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>()), |
+ devices_changed_observer_list_( |
+ new ObserverListThreadSafe<DevicesChangedObserver>()), |
battery_in_use_(false), |
suspended_(false) { |
DCHECK(!g_system_monitor); |
@@ -77,28 +79,47 @@ void SystemMonitor::ProcessPowerMessage(PowerEvent event_id) { |
} |
} |
-void SystemMonitor::AddObserver(PowerObserver* obs) { |
- observer_list_->AddObserver(obs); |
+void SystemMonitor::ProcessDevicesChanged() { |
+ NotifyDevicesChanged(); |
} |
-void SystemMonitor::RemoveObserver(PowerObserver* obs) { |
- observer_list_->RemoveObserver(obs); |
+void SystemMonitor::AddPowerObserver(PowerObserver* obs) { |
+ power_observer_list_->AddObserver(obs); |
+} |
+ |
+void SystemMonitor::RemovePowerObserver(PowerObserver* obs) { |
+ power_observer_list_->RemoveObserver(obs); |
+} |
+ |
+void SystemMonitor::AddDevicesChangedObserver(DevicesChangedObserver* obs) { |
+ devices_changed_observer_list_->AddObserver(obs); |
+} |
+ |
+void SystemMonitor::RemoveDevicesChangedObserver(DevicesChangedObserver* obs) { |
+ devices_changed_observer_list_->RemoveObserver(obs); |
+} |
+ |
+void SystemMonitor::NotifyDevicesChanged() { |
+ DVLOG(1) << "DevicesChanged"; |
+ devices_changed_observer_list_->Notify( |
+ &DevicesChangedObserver::OnDevicesChanged); |
} |
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() { |