summaryrefslogtreecommitdiff
path: root/powerstats/PowerStatsAidl.cpp
diff options
context:
space:
mode:
authorBenjamin Schwartz <bsschwar@google.com>2020-10-12 11:30:33 -0700
committerBenjamin Schwartz <bsschwar@google.com>2020-10-15 11:24:49 -0700
commit364b5c0654799a12ba266450a31ec67292fb43e6 (patch)
treef86d3837c7c8cbdd5e54e4a6861916f62b3e996a /powerstats/PowerStatsAidl.cpp
parent4f924b70503784a62664aa9d80079530312ae6f4 (diff)
downloadpixel-364b5c0654799a12ba266450a31ec67292fb43e6.tar.gz
powerstats: Add PowerStatsEnergyConsumer
This allows for the creation of energy consumers that combine data from the energy meter and state residencies. Bug: 170345932 Test: dumpsys android.hardware.power.stats.IPowerStats/default Change-Id: I81983bba7791c9d4ba1bde8a846694c7ad0c0ef6
Diffstat (limited to 'powerstats/PowerStatsAidl.cpp')
-rw-r--r--powerstats/PowerStatsAidl.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/powerstats/PowerStatsAidl.cpp b/powerstats/PowerStatsAidl.cpp
index f2dbc9f3..c8c6226b 100644
--- a/powerstats/PowerStatsAidl.cpp
+++ b/powerstats/PowerStatsAidl.cpp
@@ -37,6 +37,10 @@ namespace power {
namespace stats {
void PowerStats::addStateResidencyDataProvider(sp<IStateResidencyDataProvider> p) {
+ if (!p) {
+ return;
+ }
+
int32_t id = mPowerEntityInfos.size();
for (const auto &[entityName, states] : p->getInfo()) {
@@ -105,12 +109,16 @@ ndk::ScopedAStatus PowerStats::getStateResidency(const std::vector<int32_t> &in_
return ndk::ScopedAStatus::fromStatus(err);
}
-void PowerStats::addEnergyConsumerDataProvider(sp<IEnergyConsumerDataProvider> p) {
- mEnergyConsumerDataProviders.emplace(p->getId(), p);
+void PowerStats::addEnergyConsumer(sp<IEnergyConsumer> p) {
+ if (!p) {
+ return;
+ }
+
+ mEnergyConsumers.emplace(p->getId(), p);
}
ndk::ScopedAStatus PowerStats::getEnergyConsumerInfo(std::vector<EnergyConsumerId> *_aidl_return) {
- for (const auto &[id, ignored] : mEnergyConsumerDataProviders) {
+ for (const auto &[id, ignored] : mEnergyConsumers) {
_aidl_return->push_back(id);
}
return ndk::ScopedAStatus::ok();
@@ -119,7 +127,7 @@ ndk::ScopedAStatus PowerStats::getEnergyConsumerInfo(std::vector<EnergyConsumerI
ndk::ScopedAStatus PowerStats::getEnergyConsumed(
const std::vector<EnergyConsumerId> &in_energyConsumerIds,
std::vector<EnergyConsumerResult> *_aidl_return) {
- if (mEnergyConsumerDataProviders.empty()) {
+ if (mEnergyConsumers.empty()) {
return ndk::ScopedAStatus::ok();
}
@@ -134,12 +142,12 @@ ndk::ScopedAStatus PowerStats::getEnergyConsumed(
for (const auto id : in_energyConsumerIds) {
// skip any unavailable ids
- if (mEnergyConsumerDataProviders.find(id) == mEnergyConsumerDataProviders.end()) {
+ if (mEnergyConsumers.find(id) == mEnergyConsumers.end()) {
err = STATUS_BAD_VALUE;
continue;
}
- auto res = mEnergyConsumerDataProviders.at(id)->getResult();
+ auto res = mEnergyConsumers.at(id)->getEnergyConsumed();
if (res) {
_aidl_return->emplace_back(res.value());
} else {