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/memory/ref_counted.h" 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/power_monitor/power_observer.h" 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "content/common/content_export.h" 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "content/public/browser/browser_thread.h" 13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace IPC { 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) class Sender; 16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace content { 19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// A class used to monitor the power state change and communicate it to child 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// processes via IPC. 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class CONTENT_EXPORT PowerMonitorMessageBroadcaster 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) : public base::PowerObserver { 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public: 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) explicit PowerMonitorMessageBroadcaster(IPC::Sender* sender); 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual ~PowerMonitorMessageBroadcaster(); 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Implement PowerObserver. 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnPowerStateChange(bool on_battery_power) OVERRIDE; 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnSuspend() OVERRIDE; 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) virtual void OnResume() OVERRIDE; 32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (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) 39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace base 40a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif // CONTENT_BROWSER_POWER_MONITOR_MESSAGE_BROADCASTER_H_ 42