1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BatteryDispatcher_h 6 #define BatteryDispatcher_h 7 8 #include "core/frame/DeviceEventDispatcherBase.h" 9 #include "modules/battery/BatteryManager.h" 10 #include "modules/battery/BatteryStatus.h" 11 #include "public/platform/WebBatteryStatusListener.h" 12 13 namespace blink { 14 class WebBatteryStatus; 15 } 16 17 namespace WebCore { 18 19 class BatteryDispatcher FINAL : public DeviceEventDispatcherBase, public blink::WebBatteryStatusListener { 20 public: 21 static BatteryDispatcher& instance(); 22 virtual ~BatteryDispatcher(); 23 24 BatteryStatus* latestData(); 25 26 // Inherited from blink::WebBatteryStatusListener. 27 virtual void updateBatteryStatus(const blink::WebBatteryStatus&) OVERRIDE; 28 29 private: 30 BatteryDispatcher(); 31 32 // Inherited from DeviceEventDispatcherBase. 33 virtual void startListening() OVERRIDE; 34 virtual void stopListening() OVERRIDE; 35 36 RefPtrWillBePersistent<BatteryStatus> m_batteryStatus; 37 }; 38 39 } 40 41 #endif // BatteryDispatcher_h 42