Chromium Code Reviews| 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 |