Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / battery / BatteryDispatcher.cpp
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 #include "config.h"
6 #include "modules/battery/BatteryDispatcher.h"
7
8 #include "modules/battery/BatteryStatus.h"
9 #include "public/platform/Platform.h"
10
11 namespace blink {
12
13 BatteryDispatcher& BatteryDispatcher::instance()
14 {
15     DEFINE_STATIC_LOCAL(Persistent<BatteryDispatcher>, batteryDispatcher, (new BatteryDispatcher()));
16     return *batteryDispatcher;
17 }
18
19 BatteryDispatcher::BatteryDispatcher()
20 {
21 }
22
23 BatteryDispatcher::~BatteryDispatcher()
24 {
25 }
26
27 void BatteryDispatcher::trace(Visitor* visitor)
28 {
29     visitor->trace(m_batteryStatus);
30     PlatformEventDispatcher::trace(visitor);
31 }
32
33 void BatteryDispatcher::updateBatteryStatus(const WebBatteryStatus& batteryStatus)
34 {
35     m_batteryStatus = BatteryStatus::create(batteryStatus.charging, batteryStatus.chargingTime, batteryStatus.dischargingTime, batteryStatus.level);
36     notifyControllers();
37 }
38
39 BatteryStatus* BatteryDispatcher::latestData()
40 {
41     return m_batteryStatus.get();
42 }
43
44 void BatteryDispatcher::startListening()
45 {
46     Platform::current()->startListening(WebPlatformEventBattery, this);
47 }
48
49 void BatteryDispatcher::stopListening()
50 {
51     Platform::current()->stopListening(WebPlatformEventBattery);
52     m_batteryStatus.clear();
53 }
54
55 } // namespace blink