Refactor incident_helper to use protoutil and cppstream plugin.
1. Split the parsers to its own file to prevent all the parsers in one gaint file. 2. Completely get rid of protobuf-cpp-full in incident_helper, use ProtoOutputStream and cppstream instead, the incident_helper binary is reduced from ~500K to ~113K. 3. Write data to protobuf even its values are zero/default, the reason is for example we have a repeated int32 orders = 1; and people explicitly append 0 so the total repeated field has 10 values, if zero is not written to serialized data, this repeated field will only have 9 values which is not what we want at first place. This also aligns with the default protobuf serialization behavior in incident_helper_test. 4. Use Android.bp for protoutil lib since it is not able to depend on libs compiled by .mk file, it works the other way. 5. Add a new custom message option for streaming_proto, if specified, the cppstream will create extra metadata to get field ids by field name. A Table class is created in incident_helper to use it. Bug: 67860303 Test: unit tested as well as on device test Change-Id: I8e136fd15f343a4a623d20910ec64b622b478a3e
This commit is contained in:
@@ -1553,6 +1553,7 @@ LOCAL_PROTOC_FLAGS := \
|
||||
-Iexternal/protobuf/src
|
||||
LOCAL_SOURCE_FILES_ALL_GENERATED := true
|
||||
LOCAL_SRC_FILES := \
|
||||
tools/streaming_proto/stream.proto \
|
||||
$(call all-proto-files-under, core/proto) \
|
||||
$(call all-proto-files-under, libs/incident/proto)
|
||||
include $(BUILD_HOST_JAVA_LIBRARY)
|
||||
|
||||
Reference in New Issue
Block a user