diff options
author | Benjamin Schwartz <bsschwar@google.com> | 2020-10-12 11:30:33 -0700 |
---|---|---|
committer | Benjamin Schwartz <bsschwar@google.com> | 2020-10-15 11:24:49 -0700 |
commit | 364b5c0654799a12ba266450a31ec67292fb43e6 (patch) | |
tree | f86d3837c7c8cbdd5e54e4a6861916f62b3e996a /powerstats/PowerStatsAidl.cpp | |
parent | 4f924b70503784a62664aa9d80079530312ae6f4 (diff) | |
download | pixel-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.cpp | 20 |
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 { |