1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file. 4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#ifndef CONTENT_BROWSER_POWER_MONITOR_MESSAGE_BROADCASTER_H_ 6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#define CONTENT_BROWSER_POWER_MONITOR_MESSAGE_BROADCASTER_H_ 7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/basictypes.h" 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/power_monitor/power_observer.h" 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "content/common/content_export.h" 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace IPC { 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class Sender; 14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace content { 17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// A class used to monitor the power state change and communicate it to child 19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// processes via IPC. 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class CONTENT_EXPORT PowerMonitorMessageBroadcaster 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) : public base::PowerObserver { 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public: 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) explicit PowerMonitorMessageBroadcaster(IPC::Sender* sender); 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual ~PowerMonitorMessageBroadcaster(); 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Implement PowerObserver. 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnPowerStateChange(bool on_battery_power) OVERRIDE; 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnSuspend() OVERRIDE; 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnResume() OVERRIDE; 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void Init(); 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) private: 34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) IPC::Sender* sender_; 35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PowerMonitorMessageBroadcaster); 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}; 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} // namespace content 40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif // CONTENT_BROWSER_POWER_MONITOR_MESSAGE_BROADCASTER_H_ 42