summaryrefslogtreecommitdiff
path: root/tools/stats_log_api_gen/java_writer.cpp
AgeCommit message (Collapse)Author
2020-12-12Migrate to frameworks/proto_logging/statsBaligh Uddin
BUG: 175318992 Test: TH Merged-In: Ia6463c8f6a801cd9db54afa30df0aa3f16b09891 Change-Id: I81324b83802dc2b06081600282bb73491f29473b Exempt-From-Owner-Approval: cleanup CL
2020-07-31Update stats-log-api-gen source based off of google3 presubmit checksSalud Lemus
Bug: 161812407 Test: `m statslog-framework-java-gen` Test: `m statslog-telephony-java-gen` Test: `m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test` Change-Id: Id68982e306fbc379ed8e90b33a38b8a6604e66ad
2020-07-07Added support for pulled atoms for stats-log-api-genSalud Lemus
Currently, stats-log-api-gen allows statsd clients to send events for pushed atoms to statsd using a simple auto-generated function call. Allow support for pulled atoms so that clients no longer have to hand-construct StatsEvent objects by calling StatsEvent write methods directly and also making sure that the appropriate annotations are added. This support is for Java clients only for now. Bug: 160368804 Test: Ran `m statslog-framework-java-gen` and completed successfully Test: Ran `m` and completed successfully Test: Ran `m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test` Test: Ran `atest CtsStatsdHostTestCases:android.cts.statsd.atom` and all passed except for CTS tests related to a SIM card because the testing device does not have a SIM card Change-Id: Ie2cbb298690ce71ff7fe7457b17b9d7bdbb24f6b
2020-05-07Use proper platform version checks (apigen)Ruchir Rastogi
Test: m statslog-docsui-java-gen Bug: 146235828 Change-Id: I5b1a2e0fa356368b91548bd050ec2c493b72f37c
2020-04-03Make state_option top-level boolean annotationsMuhammad Qureshi
- Add AnnotationId enum stats-log-api-gen - Rename RESET_STATE annotation to TRIGGER_STATE_RESET. Also rename the proto annotation. Bug: 152412767 Test: stats-log-api-gen-test Test: m statslog-framework-java-gen Change-Id: I2c12ea0b9222ef28b8cc11ea36b272e518a96259
2020-03-31Use constant names instead of literalsMuhammad Qureshi
Use constant names instead of literals when writing annotations to increase readability. FrameworkStatsLog.java: https://paste.googleplex.com/4789132691767296 statslog.h: https://paste.googleplex.com/4986214782337024 statslog.cpp: https://paste.googleplex.com/4856851575341056 Bug: 151786433 Test: m statslog-framework-java-gen Test: m libstatslog Change-Id: I47111fe02319bebf41f429642fb675f7a856710b
2020-03-27Only send reset state annotation when neededMuhammad Qureshi
Only send reset state annotation when reset state occurs. Bug: 151776731 Test: m libstatslog Change-Id: I6f6b4d784d3741c0059085421565eba81db5527c
2020-03-26Group annotations for the same atom idMuhammad Qureshi
Group annotations for the same atom id inside one if-block in generated code. Use shared_ptr to store AtomDecls in multiple data structures. Store a mapping of field numbers to atoms that have annotations at corresponding field numbers in Collation.h Bug: 151744250 Test: stats-log-api-gen-test Test: m stats-log-api-gen Test: m libstatsmetadata Test: m statslog-framework-java-gen Test: m libstatslog Change-Id: I874696cfb5c27141017b4293bec809ab510ceb98
2020-03-24Run clang-format in stats_log_api_genMuhammad Qureshi
Bug: 152253223 Test: m stats-log-api-gen Test: stats-log-api-gen-test Change-Id: Iad76baea8cc9ae7b3978f1133ab94d8e96bbbafe
2020-03-24Add truncate_timestamp annotationMuhammad Qureshi
Mark privacy-sensitive atoms with truncate_timestamp annotation. Factor out annotation collation to a helper method. Add truncate_timestamp annotation support in stats-log-api-gen. Add writeAnnotation* calls in Java and native generated code for atom id annotations. TODO: remove kTruncatingTimestampAtoms from atoms_info. TODO: use truncate_timestamp annotation inside statsd. Bug: 151111680 Test: stats-log-api-gen-test Test: m statslog-framework-java-gen Test: m libstatsmetadata Change-Id: I3db5f4ffbf959bd36c62f890cc88606912798d40
2020-03-17StatsEvent annotations java autogenJeffrey Huang
Autogenerate annotations for atoms logged in java. generated FrameworkStatsLog.java: https://paste.googleplex.com/4789132691767296 Bug: 151102209 Test: m stats-log-api-gen Test: m statslog-framework-java-gen Change-Id: I50b01feaacfcb8ad5d0236432ceb0e97c8c907ab
2020-03-17Store annotation during collationMuhammad Qureshi
- Only collate atoms in the specified module. - Replace signature_to_modules with signatureInfoMap. This maps each signature to another map keyed by field number and whose values are vector of annotations. Bug: 151102006 Test: stats-log-api-gen-test Change-Id: I25bbe4883c8f7f86a06d04d27cd425367b6d65a0
2020-03-05Delete unused code in stats-log-api-genMuhammad Qureshi
Bug: 145100015 Test: m Change-Id: Idbbe35fbce0d751a5973128406596678e1ead5d3
2020-01-17Add flag to stats-log-api-gen for WorkSource.Muhammad Qureshi
As part of getting rid of StatsLogInternal and moving every atom to be logged from a module, this CL addresses 2 issues: 1. Add WorkSource logging to modules. 2. Gate WorkSource logging via a CLI flag to prevent WorkSource methods from being included in modules that are Mainline modules and can't have @hide calls. Bug: 147541828 Test: m Test: atest android.cts.statsd.atom.UidAtomTests Change-Id: Icce2f6ed7298be5e5ceebfb05d87e6fa7cd6bdbb
2020-01-15Make writeKeyValuePairs accept Nullable argsMuhammad Qureshi
API Review requested to remove unneeded allocations so pass null for arguments that are empty when writing KeyValuePairs Bug: 146383532 Test: m Change-Id: Ic1788f65e8c7f837d6800d59c186519a82882bf7
2020-01-08Use preview_sdk_int for version code checksMuhammad Qureshi
Don't use Build.VERSION.CODENAME to check for R. Use Build.VERSION.SDK_INT > Q || (Build.VERSION.SDK_INT == Q && Build.VERSION.PREVIEW_SDK_INT > 0) Bug: 146235828 Test: m DocumentsUIGoogle Change-Id: I59e327d4e92d41a93b6bea145b8497fd4f85108c
2020-01-02Add --supportQ flag to java StatsLog codegenMuhammad Qureshi
Add support to generate Q schema code generation only for modules that ship to Q. Bug: 145606209 Test: m Test: flashes successfully Test: adb logcat "*:S statsd:*" Change-Id: I978ac321415f1e8d76e4ec73445894965845aaea
2020-01-02Support new socket schema in native codegenMuhammad Qureshi
New code generation implementation is flag guarded by STATS_SCHEMA_LEGACY Support for Q schema can be added by passing --supportQ flag in stats_log_api_gen. (Only needed for statslog_resolv.cpp) Q schema is supported through StatsEventCompat. Generated R schema statslog.h: https://paste.googleplex.com/4986214782337024 Generated R schema statslog.cpp: https://paste.googleplex.com/4856851575341056 Generated R schema statslog_resolv.h: https://paste.googleplex.com/6062978921136128 Generated R schema statslog_resolv.cpp: https://paste.googleplex.com/4752329251225600 Generated Q schema statslog.h: https://paste.googleplex.com/4766729873915904 Generated Q schema statslog.cpp: https://paste.googleplex.com/5018563779756032 Generated Q schema statslog_resolv.h: https://paste.googleplex.com/5338897498243072 Generated Q schema statslog_resolv.cpp: https://paste.googleplex.com/5191011011657728 Test: m -j Test: flashes successfully Test: adb logcat inspection Change-Id: I5675a80c03ca3fbd5cd4a02c04a4b9cb89ec32ab
2019-12-10Merge "Fix StatsEvent memory usage for pulled events"TreeHugger Robot
2019-12-10Fix StatsEvent memory usage for pulled eventsMuhammad Qureshi
Add usePooledBuffer flag to the Builder which determines whether to reuse the Buffer's byte array in StatsEvent or use a copy. The build() function also calls release() on the Buffer if a copy of the Buffer's byte array is passed to StatsEvent. Also, for pushed events, release the StatsEvent object and consequently, the Buffer in StatsLog.write(StatsEvent) Fixes: 145026572 Fixes: 144126444 Test: bit FrameworksCoreTests:android.util.StatsEventTest Change-Id: I1cdaf0027b69281cb7cb6f3c8ca923d03829b4dd
2019-12-08Handle nulls in Java autogenerationMuhammad Qureshi
Bug: 143979391 Test: m -j Change-Id: I93146faa1976cac195c2250832d12ee4a09ae969
2019-11-25Use StatsEvent in Java autogenerated codeMuhammad Qureshi
The change is guarded by STATS_SCHEMA_LEGACY flag in the autogenerator Android.bp. The flag can only be removed once rest of statsd switches over to the new socket schema. The new autogeneration uses StatsEvent for both Mainline module clients and the default platform client. For Mainline modules, the autogenerated code uses a runtime dessert version check to use new socket schema on R+ platforms and the legacy schema on the older platforms. The legacy schema is encapsulated in a separate autogenerated inner class called QLogger. generated DocumentsStatsLog.java: https://paste.googleplex.com/4665805503463424 generated StatsLogInternal.java: https://paste.googleplex.com/5955095055302656 generated android_util_StatsLogInternal.cpp: https://paste.googleplex.com/6737331711115264 Bug: 142811546 Test: m -j && m -j DocumentsUIGoogle Test: Flashes successfully and events are logged to statsd Change-Id: I4c804eaf4d5ae78001146c89ebe46dfb0a453853