Index: chrome/browser/chromeos/power/cpu_data_collector.cc |
diff --git a/chrome/browser/chromeos/power/cpu_data_collector.cc b/chrome/browser/chromeos/power/cpu_data_collector.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..91a5fbc748ce5c7bfca006573d508f43aecc51b6 |
--- /dev/null |
+++ b/chrome/browser/chromeos/power/cpu_data_collector.cc |
@@ -0,0 +1,52 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/bind.h" |
+#include "chrome/browser/chromeos/power/cpu_data_collector.h" |
+#include "chrome/browser/chromeos/power/power_data_collector.h" |
+ |
+namespace chromeos { |
+ |
+namespace { |
+// The CPU data is sampled every |kCpuDataSamplePeriodSec| seconds. |
+const int kCpuDataSamplePeriodSec = 30 |
+ |
+// Sequence name for blocking pool sequenced tasks. |
+const char kCpuDataCollectionSequenceName[] = |
+ "chromeos_power_cpu_data_collector_sequence"; |
+} |
+ |
+CpuDataCollector::CpuDataCollector() { |
+} |
+ |
+CpuDataCollector::~CpuDataCollector() { |
+ time_.Stop(); |
Daniel Erat
2014/01/30 15:47:51
is this supposed to be timer_? you don't need to s
|
+} |
+ |
+void CpuDataCollector::Start() { |
+ timer_.Start(FROM_HERE, |
+ base::TimeDelta::FromSeconds(kCpuDataSamplePeriodSec), |
+ this, |
+ &CpuDataCollector::PostCollectSample); |
+} |
+ |
+void CpuDataCollector::Lock() { |
+} |
+ |
+void CpuDataCollector::PostCollectSample() { |
+ content::BrowserThread::PostBlockingPoolSequencedTask( |
Daniel Erat
2014/01/30 15:47:51
use PostBlockingPoolTaskAndReply() instead, like i
|
+ kCpuDataCollectionSequenceName, |
+ FROM_HERE, |
+ base::Bind(&CpuDataCollector::CollectSample, base::Unretained(this))); |
+} |
+ |
+void CpuDataCollector::CollectSample() { |
+ // Read samples from sysfs |
+ |
+ Lock(); |
+ // Add samples to cpu_idle_state_data_ and cpu_freq_state_data_ |
+ Unlock(); |
+} |
+ |
+} // namespace chromeos |