| Index: base/power_monitor/power_monitor_mac.mm
|
| diff --git a/base/system_monitor/system_monitor_mac.mm b/base/power_monitor/power_monitor_mac.mm
|
| similarity index 79%
|
| rename from base/system_monitor/system_monitor_mac.mm
|
| rename to base/power_monitor/power_monitor_mac.mm
|
| index d0dbaabcd4417864b21166e81c068e20c769cbe6..9d3ba2d2e6c0537b1727b211f820eb6afe305379 100644
|
| --- a/base/system_monitor/system_monitor_mac.mm
|
| +++ b/base/power_monitor/power_monitor_mac.mm
|
| @@ -5,7 +5,7 @@
|
| // Implementation based on sample code from
|
| // http://developer.apple.com/library/mac/#qa/qa1340/_index.html.
|
|
|
| -#include "base/system_monitor/system_monitor.h"
|
| +#include "base/power_monitor/power_monitor.h"
|
|
|
| #include <IOKit/pwr_mgt/IOPMLib.h>
|
| #include <IOKit/IOMessage.h>
|
| @@ -17,22 +17,23 @@ namespace {
|
| io_connect_t g_system_power_io_port = 0;
|
| IONotificationPortRef g_notification_port_ref = 0;
|
| io_object_t g_notifier_object = 0;
|
| +PowerMonitor::Signaler* g_power_signaler = NULL;
|
|
|
| void SystemPowerEventCallback(void*,
|
| io_service_t service,
|
| natural_t message_type,
|
| void* message_argument) {
|
| - SystemMonitor* sys_monitor = SystemMonitor::Get();
|
| - DCHECK(sys_monitor);
|
| +
|
| + CHECK(g_power_signaler);
|
| switch (message_type) {
|
| case kIOMessageSystemWillSleep:
|
| - sys_monitor->ProcessPowerMessage(SystemMonitor::SUSPEND_EVENT);
|
| + g_power_signaler->ProcessPowerEvent(base::PowerMonitor::SUSPEND_EVENT);
|
| IOAllowPowerChange(g_system_power_io_port,
|
| reinterpret_cast<intptr_t>(message_argument));
|
| break;
|
|
|
| case kIOMessageSystemWillPowerOn:
|
| - sys_monitor->ProcessPowerMessage(SystemMonitor::RESUME_EVENT);
|
| + g_power_signaler->ProcessPowerEvent(PowerMonitor::RESUME_EVENT);
|
| break;
|
| }
|
| }
|
| @@ -45,8 +46,10 @@ void SystemPowerEventCallback(void*,
|
| // See crbug.com/83783 .
|
|
|
| // static
|
| -void SystemMonitor::AllocateSystemIOPorts() {
|
| +void PowerMonitor::AllocateSystemIOPorts() {
|
| DCHECK_EQ(g_system_power_io_port, 0u);
|
| + if (g_system_power_io_port != 0u)
|
| + return;
|
|
|
| // Notification port allocated by IORegisterForSystemPower.
|
|
|
| @@ -57,12 +60,13 @@ void SystemMonitor::AllocateSystemIOPorts() {
|
| DCHECK_NE(g_system_power_io_port, 0u);
|
| }
|
|
|
| -void SystemMonitor::PlatformInit() {
|
| - // Need to call AllocateSystemIOPorts() before constructing a SystemMonitor
|
| +void PowerMonitor::PlatformInit() {
|
| + // Need to call AllocateSystemIOPorts() before creating a PowerMonitor
|
| // object.
|
| - DCHECK_NE(g_system_power_io_port, 0u);
|
| - if (g_system_power_io_port == 0)
|
| - return;
|
| + CHECK_NE(g_system_power_io_port, 0u);
|
| +
|
| + CHECK(!g_power_signaler);
|
| + g_power_signaler = PowerMonitor::Get()->GetSignalerOnce();
|
|
|
| // Add the notification port to the application runloop
|
| CFRunLoopAddSource(
|
| @@ -71,8 +75,10 @@ void SystemMonitor::PlatformInit() {
|
| kCFRunLoopCommonModes);
|
| }
|
|
|
| -void SystemMonitor::PlatformDestroy() {
|
| +
|
| +void PowerMonitor::PlatformDestroy() {
|
| DCHECK_NE(g_system_power_io_port, 0u);
|
| +
|
| if (g_system_power_io_port == 0)
|
| return;
|
|
|
|
|