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

Unified Diff: chromeos/power/power_data_collector.cc

Issue 134623002: [chromeos] Limit the data samples stored by PowerDataCollector. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 6 years, 11 months 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 side-by-side diff with in-line comments
Download patch
Index: chromeos/power/power_data_collector.cc
diff --git a/chromeos/power/power_data_collector.cc b/chromeos/power/power_data_collector.cc
index cc84e5c9a299e86aaa06d98d27cb8f9e61e84554..ac22497dcc0b44b104814a3f1e640c7cbb0dc44c 100644
--- a/chromeos/power/power_data_collector.cc
+++ b/chromeos/power/power_data_collector.cc
@@ -17,6 +17,8 @@ PowerDataCollector* g_power_data_collector = NULL;
} // namespace
+const int PowerDataCollector::kSampleTimeLimitSec = 24 * 60 * 60;
+
// static
void PowerDataCollector::Initialize() {
// Check that power data collector is initialized only after the
@@ -47,8 +49,7 @@ void PowerDataCollector::PowerChanged(
snapshot.external_power = (prop.external_power() !=
power_manager::PowerSupplyProperties::DISCONNECTED);
snapshot.battery_percent = prop.battery_percent();
-
- power_supply_data_.push_back(snapshot);
+ AddSnapshot(snapshot);
}
PowerDataCollector::PowerDataCollector() {
@@ -61,6 +62,19 @@ PowerDataCollector::~PowerDataCollector() {
dbus_manager->GetPowerManagerClient()->RemoveObserver(this);
}
+void PowerDataCollector::AddSnapshot(const PowerSupplySnapshot& snapshot) {
+ while (!power_supply_data_.empty()) {
+ const PowerSupplySnapshot& first = power_supply_data_.front();
+ if (snapshot.time - first.time >
+ base::TimeDelta::FromSeconds(kSampleTimeLimitSec)) {
+ power_supply_data_.pop_front();
+ } else {
+ break;
+ }
+ }
+ power_supply_data_.push_back(snapshot);
+}
+
PowerDataCollector::PowerSupplySnapshot::PowerSupplySnapshot()
: time(base::TimeTicks::Now()),
external_power(false),

Powered by Google App Engine
This is Rietveld 408576698