Loading cmds/statsd/src/StatsService.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -1105,6 +1105,22 @@ hardware::Return<void> StatsService::reportSpeechDspStat( return hardware::Void(); } hardware::Return<void> StatsService::reportVendorAtom(const VendorAtom& vendorAtom) { std::string reverseDomainName = (std::string) vendorAtom.reverseDomainName; if (vendorAtom.atomId < 100000 || vendorAtom.atomId >= 200000) { ALOGE("Atom ID %ld is not a valid vendor atom ID", (long) vendorAtom.atomId); return hardware::Void(); } if (reverseDomainName.length() > 50) { ALOGE("Vendor atom reverse domain name %s is too long.", reverseDomainName.c_str()); return hardware::Void(); } LogEvent event(getWallClockSec() * NS_PER_SEC, getElapsedRealtimeNs(), vendorAtom); mProcessor->OnLogEvent(&event); return hardware::Void(); } void StatsService::binderDied(const wp <IBinder>& who) { ALOGW("statscompanion service died"); StatsdStats::getInstance().noteSystemServerRestart(getWallClockSec()); Loading cmds/statsd/src/StatsService.h +5 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,11 @@ public: virtual Return<void> reportSpeechDspStat( const SpeechDspStat& speechDspStat) override; /** * Binder call to get vendor atom. */ virtual Return<void> reportVendorAtom(const VendorAtom& vendorAtom) override; /** IBinder::DeathRecipient */ virtual void binderDied(const wp<IBinder>& who) override; Loading cmds/statsd/src/logd/LogEvent.cpp +30 −0 Original line number Diff line number Diff line Loading @@ -310,6 +310,36 @@ LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, Value(usbPortOverheatEvent.timeToInactive))); } LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const VendorAtom& vendorAtom) { mLogdTimestampNs = wallClockTimestampNs; mElapsedTimestampNs = elapsedTimestampNs; mTagId = vendorAtom.atomId; mValues.push_back( FieldValue(Field(mTagId, getSimpleField(1)), Value(vendorAtom.reverseDomainName))); for (int i = 0; i < (int)vendorAtom.values.size(); i++) { switch (vendorAtom.values[i].getDiscriminator()) { case VendorAtom::Value::hidl_discriminator::intValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].intValue()))); break; case VendorAtom::Value::hidl_discriminator::longValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].longValue()))); break; case VendorAtom::Value::hidl_discriminator::floatValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].floatValue()))); break; case VendorAtom::Value::hidl_discriminator::stringValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].stringValue()))); break; } } } LogEvent::LogEvent(int32_t tagId, int64_t timestampNs) : LogEvent(tagId, timestampNs, 0) {} LogEvent::LogEvent(int32_t tagId, int64_t timestampNs, int32_t uid) { Loading cmds/statsd/src/logd/LogEvent.h +3 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,9 @@ public: explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const SpeechDspStat& speechDspStat); explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const VendorAtom& vendorAtom); ~LogEvent(); /** Loading Loading
cmds/statsd/src/StatsService.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -1105,6 +1105,22 @@ hardware::Return<void> StatsService::reportSpeechDspStat( return hardware::Void(); } hardware::Return<void> StatsService::reportVendorAtom(const VendorAtom& vendorAtom) { std::string reverseDomainName = (std::string) vendorAtom.reverseDomainName; if (vendorAtom.atomId < 100000 || vendorAtom.atomId >= 200000) { ALOGE("Atom ID %ld is not a valid vendor atom ID", (long) vendorAtom.atomId); return hardware::Void(); } if (reverseDomainName.length() > 50) { ALOGE("Vendor atom reverse domain name %s is too long.", reverseDomainName.c_str()); return hardware::Void(); } LogEvent event(getWallClockSec() * NS_PER_SEC, getElapsedRealtimeNs(), vendorAtom); mProcessor->OnLogEvent(&event); return hardware::Void(); } void StatsService::binderDied(const wp <IBinder>& who) { ALOGW("statscompanion service died"); StatsdStats::getInstance().noteSystemServerRestart(getWallClockSec()); Loading
cmds/statsd/src/StatsService.h +5 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,11 @@ public: virtual Return<void> reportSpeechDspStat( const SpeechDspStat& speechDspStat) override; /** * Binder call to get vendor atom. */ virtual Return<void> reportVendorAtom(const VendorAtom& vendorAtom) override; /** IBinder::DeathRecipient */ virtual void binderDied(const wp<IBinder>& who) override; Loading
cmds/statsd/src/logd/LogEvent.cpp +30 −0 Original line number Diff line number Diff line Loading @@ -310,6 +310,36 @@ LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, Value(usbPortOverheatEvent.timeToInactive))); } LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const VendorAtom& vendorAtom) { mLogdTimestampNs = wallClockTimestampNs; mElapsedTimestampNs = elapsedTimestampNs; mTagId = vendorAtom.atomId; mValues.push_back( FieldValue(Field(mTagId, getSimpleField(1)), Value(vendorAtom.reverseDomainName))); for (int i = 0; i < (int)vendorAtom.values.size(); i++) { switch (vendorAtom.values[i].getDiscriminator()) { case VendorAtom::Value::hidl_discriminator::intValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].intValue()))); break; case VendorAtom::Value::hidl_discriminator::longValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].longValue()))); break; case VendorAtom::Value::hidl_discriminator::floatValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].floatValue()))); break; case VendorAtom::Value::hidl_discriminator::stringValue: mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)), Value(vendorAtom.values[i].stringValue()))); break; } } } LogEvent::LogEvent(int32_t tagId, int64_t timestampNs) : LogEvent(tagId, timestampNs, 0) {} LogEvent::LogEvent(int32_t tagId, int64_t timestampNs, int32_t uid) { Loading
cmds/statsd/src/logd/LogEvent.h +3 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,9 @@ public: explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const SpeechDspStat& speechDspStat); explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const VendorAtom& vendorAtom); ~LogEvent(); /** Loading