Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: chromeos/power/power_data_collector.cc

Issue 101963004: [chromeos] New PowerManagerClient observer to collect power data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nits Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 "chromeos/power/power_data_collector.h"
6
7 #include "base/logging.h"
8 #include "chromeos/dbus/dbus_thread_manager.h"
9 #include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
10
11 namespace chromeos {
12
13 namespace {
14
15 // The global PowerDataCollector instance.
16 PowerDataCollector* power_data_collector = NULL;
stevenjb 2013/12/13 22:28:45 nit: globals (even in an anon namespace) are gener
Siva Chandra 2013/12/13 23:22:39 Done.
17
18 } // namespace
19
20 PowerDataCollector::PowerDataCollector() {
21 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this);
22 }
23
24 PowerDataCollector::~PowerDataCollector() {
25 DBusThreadManager* dbus_manager = DBusThreadManager::Get();
26 CHECK(dbus_manager);
27 dbus_manager->GetPowerManagerClient()->RemoveObserver(this);
28 }
29
30 void PowerDataCollector::PowerChanged(
31 const power_manager::PowerSupplyProperties& prop) {
32 PowerSupplySnapshot snapshot;
33 snapshot.time = base::TimeTicks::Now();
34 snapshot.external_power = (prop.external_power() !=
35 power_manager::PowerSupplyProperties::DISCONNECTED);
36 snapshot.battery_percent = prop.battery_percent();
37
38 power_supply_data_.push_back(snapshot);
39 }
40
41 void PowerDataCollector::Initialize() {
42 // Check that power data collector is initialized only after the
43 // DBusThreadManager is initialized.
44 CHECK(DBusThreadManager::Get());
45 CHECK(power_data_collector == NULL);
46 power_data_collector = new PowerDataCollector();
47 }
48
49 PowerDataCollector* PowerDataCollector::Get() {
50 CHECK(power_data_collector);
51 return power_data_collector;
52 }
53
54 void PowerDataCollector::Shutdown() {
55 // Shutdown only if initialized.
56 CHECK(power_data_collector);
57 delete power_data_collector;
58 power_data_collector = NULL;
59 }
60
61 PowerDataCollector::PowerSupplySnapshot::PowerSupplySnapshot()
62 : time(base::TimeTicks::Now()),
63 external_power(false),
64 battery_percent(0) {
65 }
66
67 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698