1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file.
4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef BatteryStatus_h
6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define BatteryStatus_h
7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#include "platform/heap/Handle.h"
9197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "wtf/Forward.h"
10d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "wtf/RefCounted.h"
11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
13d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
149e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)class BatteryStatus FINAL : public GarbageCollected<BatteryStatus> {
15d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)public:
169e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)    static BatteryStatus* create();
179e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)    static BatteryStatus* create(bool charging, double chargingTime, double dischargingTime, double level);
18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    bool charging() const { return m_charging; }
20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    double chargingTime() const  { return m_chargingTime; }
21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    double dischargingTime() const  { return m_dischargingTime; }
22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    double level() const  { return m_level; }
23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
2476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    void trace(Visitor*) { }
2576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)private:
27d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    BatteryStatus();
28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    BatteryStatus(bool charging, double chargingTime, double dischargingTime, double level);
29d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    bool m_charging;
31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    double m_chargingTime;
32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    double m_dischargingTime;
33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    double m_level;
34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)};
35d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
36c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
37d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
38d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif // BatteryStatus_h
39