diff options
| author | 2022-12-12 22:33:57 +0000 | |
|---|---|---|
| committer | 2022-12-12 22:33:57 +0000 | |
| commit | 8d2b4331e2f1d426305d18c05ffad7293df15350 (patch) | |
| tree | b13036935831c8ac9a7ab939727d2479bb66d1e9 | |
| parent | cabb2adfcc184eea12c5b71174002671819ce8ea (diff) | |
| parent | 73dcda7eada36b429c4788f05d340ce7f8dfcc4f (diff) | |
Merge changes from topic "istats_repeated" am: 73dcda7ead
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2337147
Change-Id: I87e6bc4261857ca50db0a16f7298a6b4cce83088
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/stats/StatsAidl.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/services/stats/StatsAidl.cpp b/services/stats/StatsAidl.cpp index d4b9a883f0..fe2845449f 100644 --- a/services/stats/StatsAidl.cpp +++ b/services/stats/StatsAidl.cpp @@ -66,6 +66,61 @@ ndk::ScopedAStatus StatsHal::reportVendorAtom(const VendorAtom& vendorAtom) { AStatsEvent_writeBool(event, atomValue.get<VendorAtomValue::boolValue>()); break; + case VendorAtomValue::repeatedIntValue: { + const std::optional<std::vector<int>>& repeatedIntValue = + atomValue.get<VendorAtomValue::repeatedIntValue>(); + AStatsEvent_writeInt32Array(event, repeatedIntValue->data(), + repeatedIntValue->size()); + break; + } + case VendorAtomValue::repeatedLongValue: { + const std::optional<std::vector<int64_t>>& repeatedLongValue = + atomValue.get<VendorAtomValue::repeatedLongValue>(); + AStatsEvent_writeInt64Array(event, repeatedLongValue->data(), + repeatedLongValue->size()); + break; + } + case VendorAtomValue::repeatedFloatValue: { + const std::optional<std::vector<float>>& repeatedFloatValue = + atomValue.get<VendorAtomValue::repeatedFloatValue>(); + AStatsEvent_writeFloatArray(event, repeatedFloatValue->data(), + repeatedFloatValue->size()); + break; + } + case VendorAtomValue::repeatedStringValue: { + const std::optional<std::vector<std::optional<std::string>>>& repeatedStringValue = + atomValue.get<VendorAtomValue::repeatedStringValue>(); + const std::vector<std::optional<std::string>>& repeatedStringVector = + *repeatedStringValue; + const char* cStringArray[repeatedStringVector.size()]; + + for (int i = 0; i < repeatedStringVector.size(); ++i) { + cStringArray[i] = repeatedStringVector[i]->c_str(); + } + + AStatsEvent_writeStringArray(event, cStringArray, repeatedStringVector.size()); + break; + } + case VendorAtomValue::repeatedBoolValue: { + const std::optional<std::vector<bool>>& repeatedBoolValue = + atomValue.get<VendorAtomValue::repeatedBoolValue>(); + const std::vector<bool>& repeatedBoolVector = *repeatedBoolValue; + bool boolArray[repeatedBoolValue->size()]; + + for (int i = 0; i < repeatedBoolVector.size(); ++i) { + boolArray[i] = repeatedBoolVector[i]; + } + + AStatsEvent_writeBoolArray(event, boolArray, repeatedBoolVector.size()); + break; + } + case VendorAtomValue::byteArrayValue: { + const std::optional<std::vector<uint8_t>>& byteArrayValue = + atomValue.get<VendorAtomValue::byteArrayValue>(); + + AStatsEvent_writeByteArray(event, byteArrayValue->data(), byteArrayValue->size()); + break; + } } } AStatsEvent_build(event); |